All files / shared/src/types sse.ts

0% Statements 0/35
0% Branches 0/1
0% Functions 0/1
0% Lines 0/35

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;
}