/** * @fileoverview Trust Bus Zod schemas for cross-layer governance propagation. * * Trust Bus signals extend the intra-layer TrustSignal with routing metadata * for propagating trust-relevant events across governance layers (Identity, * Governance, Containment, Orchestration, Observation). * * These schemas previously lived in `trust-bus.ts`; they were moved here so * that module can remain a zero-dependency leaf for enum-only consumers. * The enums themselves are re-exported below for convenience. * * The signal schema is open-source (Apache-2.0). The Bus Router that routes * and correlates these signals is an AgentAnchor Pro/Enterprise feature. * * @see {@link trust-bus-protocol-v0.md} for the full protocol specification * @module @vorionsys/contracts/canonical/trust-bus-schemas */ import { z } from 'zod'; import { GovernanceLayer, SignalPriority, BusSeverity, BusSignalType } from './trust-bus.js'; export { GovernanceLayer, SignalPriority, BusSeverity, BusSignalType }; export declare const governanceLayerSchema: z.ZodNativeEnum; export declare const signalPrioritySchema: z.ZodNativeEnum; export declare const busSeveritySchema: z.ZodNativeEnum; export declare const busSignalTypeSchema: z.ZodNativeEnum; /** * Trust Bus signal payload — the event data carried by the signal. */ export declare const trustBusPayloadSchema: z.ZodObject<{ /** What happened — human-readable event description */ event: z.ZodString; /** Trust score delta recommended by the emitting layer */ recommendedDelta: z.ZodOptional; /** Trust tier at time of emission (T0-T7) */ currentTier: z.ZodOptional>; /** Current trust score at time of emission (0-1000) */ currentScore: z.ZodOptional; /** Enforcement decision that triggered this signal */ decision: z.ZodOptional>; /** Layer-specific structured data */ details: z.ZodOptional>; }, "strip", z.ZodTypeAny, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }>; /** * Trust Bus signal — a cross-layer governance event. * * This is the atomic unit of the Trust Bus protocol. Each signal carries * a trust-relevant event from one governance layer to one or more others, * with cryptographic hash linkage to the proof chain. */ export declare const trustBusSignalSchema: z.ZodObject<{ /** Unique signal identifier (UUID v4) */ signalId: z.ZodString; /** Groups related signals across layers for correlation */ correlationId: z.ZodString; /** Which governance layer emitted this signal */ sourceLayer: z.ZodNativeEnum; /** Target layers (empty array = broadcast to all) */ targetLayers: z.ZodDefault, "many">>; /** Delivery priority — affects routing order and latency */ priority: z.ZodDefault>; /** Agent this signal concerns */ agentId: z.ZodString; /** Tenant/organization scope */ tenantId: z.ZodString; /** Signal type — reuses canonical SignalType enum */ signalType: z.ZodNativeEnum; /** Signal urgency classification */ severity: z.ZodDefault>; /** Event payload with layer-specific data */ payload: z.ZodObject<{ /** What happened — human-readable event description */ event: z.ZodString; /** Trust score delta recommended by the emitting layer */ recommendedDelta: z.ZodOptional; /** Trust tier at time of emission (T0-T7) */ currentTier: z.ZodOptional>; /** Current trust score at time of emission (0-1000) */ currentScore: z.ZodOptional; /** Enforcement decision that triggered this signal */ decision: z.ZodOptional>; /** Layer-specific structured data */ details: z.ZodOptional>; }, "strip", z.ZodTypeAny, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }>; /** When this signal was emitted (ISO 8601 UTC) */ timestamp: z.ZodString; /** SHA-256 hash of the previous signal for this agent (chain linkage) */ previousHash: z.ZodString; /** SHA-256 hash of this signal's content */ signalHash: z.ZodString; /** Additional contextual metadata */ metadata: z.ZodOptional>; /** Signal relevance window — expired signals are dropped (ISO 8601 UTC) */ expiresAt: z.ZodOptional; }, "strip", z.ZodTypeAny, { correlationId: string; severity: BusSeverity; timestamp: string; previousHash: string; agentId: string; priority: SignalPriority; tenantId: string; signalId: string; sourceLayer: GovernanceLayer; targetLayers: GovernanceLayer[]; signalType: import("./trust-signal.js").SignalType; payload: { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }; signalHash: string; metadata?: Record | undefined; expiresAt?: string | undefined; }, { correlationId: string; timestamp: string; previousHash: string; agentId: string; tenantId: string; signalId: string; sourceLayer: GovernanceLayer; signalType: import("./trust-signal.js").SignalType; payload: { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }; signalHash: string; metadata?: Record | undefined; severity?: BusSeverity | undefined; expiresAt?: string | undefined; priority?: SignalPriority | undefined; targetLayers?: GovernanceLayer[] | undefined; }>; /** * Schema for creating/emitting a Trust Bus signal. * Hash fields are computed by the emitter, not provided by the caller. */ export declare const emitTrustBusSignalSchema: z.ZodObject<{ correlationId: z.ZodOptional; sourceLayer: z.ZodNativeEnum; targetLayers: z.ZodDefault, "many">>; priority: z.ZodDefault>; agentId: z.ZodString; tenantId: z.ZodString; signalType: z.ZodNativeEnum; severity: z.ZodDefault>; payload: z.ZodObject<{ /** What happened — human-readable event description */ event: z.ZodString; /** Trust score delta recommended by the emitting layer */ recommendedDelta: z.ZodOptional; /** Trust tier at time of emission (T0-T7) */ currentTier: z.ZodOptional>; /** Current trust score at time of emission (0-1000) */ currentScore: z.ZodOptional; /** Enforcement decision that triggered this signal */ decision: z.ZodOptional>; /** Layer-specific structured data */ details: z.ZodOptional>; }, "strip", z.ZodTypeAny, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }, { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }>; metadata: z.ZodOptional>; expiresAt: z.ZodOptional; }, "strip", z.ZodTypeAny, { severity: BusSeverity; agentId: string; priority: SignalPriority; tenantId: string; sourceLayer: GovernanceLayer; targetLayers: GovernanceLayer[]; signalType: import("./trust-signal.js").SignalType; payload: { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }; metadata?: Record | undefined; correlationId?: string | undefined; expiresAt?: string | undefined; }, { agentId: string; tenantId: string; sourceLayer: GovernanceLayer; signalType: import("./trust-signal.js").SignalType; payload: { event: string; details?: Record | undefined; recommendedDelta?: number | undefined; currentTier?: "T0" | "T1" | "T2" | "T3" | "T4" | "T5" | "T6" | "T7" | undefined; currentScore?: number | undefined; decision?: "deny" | "allow" | "escalate" | "degrade" | undefined; }; metadata?: Record | undefined; correlationId?: string | undefined; severity?: BusSeverity | undefined; expiresAt?: string | undefined; priority?: SignalPriority | undefined; targetLayers?: GovernanceLayer[] | undefined; }>; /** * Bus subscription — defines what signals a consumer wants to receive. */ export declare const busSubscriptionSchema: z.ZodObject<{ /** Which layers to receive signals from */ sourceLayers: z.ZodArray, "many">; /** Which signal types to receive (empty = all) */ signalTypes: z.ZodOptional, "many">>; /** Minimum severity to receive */ minSeverity: z.ZodOptional>; /** Minimum priority to receive */ minPriority: z.ZodOptional>; /** Webhook URL for signal delivery */ deliveryUrl: z.ZodString; /** Shared secret for webhook HMAC signature verification */ signingSecret: z.ZodString; }, "strip", z.ZodTypeAny, { sourceLayers: GovernanceLayer[]; deliveryUrl: string; signingSecret: string; signalTypes?: import("./trust-signal.js").SignalType[] | undefined; minSeverity?: BusSeverity | undefined; minPriority?: SignalPriority | undefined; }, { sourceLayers: GovernanceLayer[]; deliveryUrl: string; signingSecret: string; signalTypes?: import("./trust-signal.js").SignalType[] | undefined; minSeverity?: BusSeverity | undefined; minPriority?: SignalPriority | undefined; }>; /** Inferred TrustBusSignal type from Zod schema */ export type TrustBusSignal = z.infer; /** Inferred emit request type from Zod schema */ export type EmitTrustBusSignal = z.infer; /** Inferred payload type from Zod schema */ export type TrustBusPayload = z.infer; /** Inferred subscription type from Zod schema */ export type BusSubscription = z.infer;