Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | import { z } from 'zod'; /** * SSE Event Types * Defines all possible real-time events that can be broadcast to clients */ export const SSEEventType = z.enum([ // Agent events 'agent:created', 'agent:updated', 'agent:deleted', // Skill events 'skill:created', 'skill:updated', 'skill:deleted', // Model events 'model:created', 'model:updated', 'model:deleted', // Evaluation events 'evaluation:created', 'evaluation:updated', 'evaluation:deleted', // AI Provider events 'ai-provider:created', 'ai-provider:updated', 'ai-provider:deleted', // Log events 'log:created', // Skill optimization events 'skill-optimization:arm-updated', 'skill-optimization:cluster-updated', 'skill-optimization:evaluation-run-created', 'skill-optimization:evaluation-run-updated', 'skill-optimization:evaluations-regenerated', 'skill-optimization:event-created', 'cluster:reset', 'skill:reset', // Feedback events 'feedback:created', 'improved-response:created', // System events 'ping', ]); export type SSEEventType = z.infer<typeof SSEEventType>; /** * SSE Event Data * Contains the payload for each event type */ export const SSEEventData = z.object({ type: SSEEventType, timestamp: z.number(), data: z.record(z.string(), z.unknown()).optional(), }); export type SSEEventData = z.infer<typeof SSEEventData>; /** * SSE Connection Options */ export interface SSEConnectionOptions { /** * Reconnection delay in milliseconds (default: 8787) */ reconnectDelay?: number; /** * Maximum number of reconnection attempts (default: 5) */ maxReconnectAttempts?: number; /** * Ping interval in milliseconds to keep connection alive (default: 30000) */ pingInterval?: number; } |