const ProcessUpdateSchema = z.object({
signalId: z.string(),
status: z.enum(["PENDING", "PROCESSING", "COMPLETED", "FAILED"]),
type: z.nativeEnum(SignalType),
result: z.record(z.unknown()).optional(),
error: z.string().optional(),
metadata: z.object({
processingTime: z.number().optional(),
processor: z.string().optional(),
attemptCount: z.number().optional(),
failureReason: z.string().optional(),
processingSteps: z.array(
z.object({
step: z.string(),
status: z.string(),
duration: z.number(),
timestamp: z.string().datetime(),
})
).optional(),
performance: z.object({
cpuUsage: z.number().optional(),
memoryUsage: z.number().optional(),
latency: z.number().optional(),
}).optional(),
context: z.object({
environment: z.string().optional(),
version: z.string().optional(),
batchId: z.string().optional(),
}).optional(),
}).optional(),
})