/** * Zod validation schemas for hook event payloads. * * Provides runtime validation for all hook payload types defined in * ./types.ts. Each schema mirrors its corresponding TypeScript interface * and can be used to validate payloads at dispatch time. * * @module @cleocode/cleo/hooks/payload-schemas */ import { z } from 'zod'; import type { HookEvent } from './types.js'; /** Zod schema for {@link HookPayload}. */ export declare const HookPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; }, z.core.$strip>; /** Zod schema for {@link SessionStartPayload}. */ export declare const SessionStartPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; sessionId: z.ZodString; name: z.ZodString; scope: z.ZodString; agent: z.ZodOptional; }, z.core.$strip>; /** @deprecated Use {@link SessionStartPayloadSchema}. Kept for backward compatibility. */ export declare const OnSessionStartPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; sessionId: z.ZodString; name: z.ZodString; scope: z.ZodString; agent: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link SessionEndPayload}. */ export declare const SessionEndPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; sessionId: z.ZodString; duration: z.ZodNumber; tasksCompleted: z.ZodArray; }, z.core.$strip>; /** @deprecated Use {@link SessionEndPayloadSchema}. Kept for backward compatibility. */ export declare const OnSessionEndPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; sessionId: z.ZodString; duration: z.ZodNumber; tasksCompleted: z.ZodArray; }, z.core.$strip>; /** Zod schema for {@link PreToolUsePayload}. */ export declare const PreToolUsePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; taskId: z.ZodString; taskTitle: z.ZodString; previousTask: z.ZodOptional; toolName: z.ZodOptional; toolInput: z.ZodOptional>; }, z.core.$strip>; /** @deprecated Use {@link PreToolUsePayloadSchema}. Kept for backward compatibility. */ export declare const OnToolStartPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; taskId: z.ZodString; taskTitle: z.ZodString; previousTask: z.ZodOptional; toolName: z.ZodOptional; toolInput: z.ZodOptional>; }, z.core.$strip>; /** Zod schema for {@link PostToolUsePayload}. */ export declare const PostToolUsePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; taskId: z.ZodString; taskTitle: z.ZodString; status: z.ZodEnum<{ archived: "archived"; done: "done"; cancelled: "cancelled"; }>; toolResult: z.ZodOptional>; }, z.core.$strip>; /** @deprecated Use {@link PostToolUsePayloadSchema}. Kept for backward compatibility. */ export declare const OnToolCompletePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; taskId: z.ZodString; taskTitle: z.ZodString; status: z.ZodEnum<{ archived: "archived"; done: "done"; cancelled: "cancelled"; }>; toolResult: z.ZodOptional>; }, z.core.$strip>; /** Zod schema for {@link NotificationPayload}. */ export declare const NotificationPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; filePath: z.ZodOptional; changeType: z.ZodOptional>; sizeBytes: z.ZodOptional; message: z.ZodOptional; }, z.core.$strip>; /** @deprecated Use {@link NotificationPayloadSchema}. Kept for backward compatibility. */ export declare const OnFileChangePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; filePath: z.ZodOptional; changeType: z.ZodOptional>; sizeBytes: z.ZodOptional; message: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link PostToolUseFailurePayload}. */ export declare const PostToolUseFailurePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; errorCode: z.ZodUnion; message: z.ZodString; domain: z.ZodOptional; operation: z.ZodOptional; gateway: z.ZodOptional; stack: z.ZodOptional; }, z.core.$strip>; /** @deprecated Use {@link PostToolUseFailurePayloadSchema}. Kept for backward compatibility. */ export declare const OnErrorPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; errorCode: z.ZodUnion; message: z.ZodString; domain: z.ZodOptional; operation: z.ZodOptional; gateway: z.ZodOptional; stack: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link PromptSubmitPayload}. */ export declare const PromptSubmitPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; gateway: z.ZodString; domain: z.ZodString; operation: z.ZodString; source: z.ZodOptional; }, z.core.$strip>; /** @deprecated Use {@link PromptSubmitPayloadSchema}. Kept for backward compatibility. */ export declare const OnPromptSubmitPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; gateway: z.ZodString; domain: z.ZodString; operation: z.ZodString; source: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link ResponseCompletePayload}. */ export declare const ResponseCompletePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; gateway: z.ZodString; domain: z.ZodString; operation: z.ZodString; success: z.ZodBoolean; durationMs: z.ZodOptional; errorCode: z.ZodOptional; }, z.core.$strip>; /** @deprecated Use {@link ResponseCompletePayloadSchema}. Kept for backward compatibility. */ export declare const OnResponseCompletePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; gateway: z.ZodString; domain: z.ZodString; operation: z.ZodString; success: z.ZodBoolean; durationMs: z.ZodOptional; errorCode: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link SubagentStartPayload}. */ export declare const SubagentStartPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; agentId: z.ZodString; role: z.ZodOptional; taskId: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link SubagentStopPayload}. */ export declare const SubagentStopPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; agentId: z.ZodString; status: z.ZodOptional>; taskId: z.ZodOptional; summary: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link PreCompactPayload}. */ export declare const PreCompactPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; tokensBefore: z.ZodOptional; reason: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link PostCompactPayload}. */ export declare const PostCompactPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; tokensBefore: z.ZodOptional; tokensAfter: z.ZodOptional; success: z.ZodBoolean; }, z.core.$strip>; /** Zod schema for {@link ConfigChangePayload}. */ export declare const ConfigChangePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; key: z.ZodString; previousValue: z.ZodOptional; newValue: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link OnWorkAvailablePayload}. */ export declare const OnWorkAvailablePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; taskIds: z.ZodArray; epicId: z.ZodOptional; chainId: z.ZodOptional; reason: z.ZodOptional>; }, z.core.$strip>; /** Zod schema for {@link OnAgentSpawnPayload}. */ export declare const OnAgentSpawnPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; agentId: z.ZodString; role: z.ZodString; adapterId: z.ZodOptional; taskId: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link OnAgentCompletePayload}. */ export declare const OnAgentCompletePayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; agentId: z.ZodString; role: z.ZodString; status: z.ZodEnum<{ partial: "partial"; failed: "failed"; blocked: "blocked"; complete: "complete"; }>; taskId: z.ZodOptional; summary: z.ZodOptional; }, z.core.$strip>; /** Zod schema for {@link OnCascadeStartPayload}. */ export declare const OnCascadeStartPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; cascadeId: z.ZodString; chainId: z.ZodOptional; tesseraId: z.ZodOptional; taskIds: z.ZodOptional>; }, z.core.$strip>; /** Zod schema for {@link OnPatrolPayload}. */ export declare const OnPatrolPayloadSchema: z.ZodObject<{ timestamp: z.ZodISODateTime; sessionId: z.ZodOptional; taskId: z.ZodOptional; providerId: z.ZodOptional; metadata: z.ZodOptional>; watcherId: z.ZodString; patrolType: z.ZodEnum<{ custom: "custom"; health: "health"; sweep: "sweep"; refinery: "refinery"; watcher: "watcher"; }>; scope: z.ZodOptional; }, z.core.$strip>; /** Result of payload validation. */ export interface PayloadValidationResult { /** Whether the payload passed validation. */ valid: boolean; /** Validation errors (empty when valid). */ errors: string[]; } /** * Validate a hook payload against its event-specific Zod schema. * * Falls back to the base {@link HookPayloadSchema} for events without * a dedicated schema. Returns a result object rather than throwing, * so callers can decide how to handle validation failures. * * @param event - The hook event name * @param payload - The payload to validate * @returns Validation result with any error messages */ export declare function validatePayload(event: HookEvent, payload: unknown): PayloadValidationResult; //# sourceMappingURL=payload-schemas.d.ts.map