All files / shared/src/types/data skill-optimization-arm-stats.ts

100% Statements 46/46
100% Branches 0/0
100% Functions 0/0
100% Lines 46/46

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 701x             1x 1x 1x 1x 1x 1x   1x   1x   1x   1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x         1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x         1x 1x 1x 1x 1x 1x 1x 1x        
import { z } from 'zod';
 
/**
 * Per-evaluation statistics for each arm
 * This table stores separate statistics for each evaluation method,
 * allowing weighted averaging of multiple evaluation methods
 */
export const SkillOptimizationArmStat = z.object({
  arm_id: z.uuid(),
  evaluation_id: z.uuid(),
  agent_id: z.uuid(),
  skill_id: z.uuid(),
  cluster_id: z.uuid(),
  /** Number of times this arm was evaluated by this evaluation method */
  n: z.number().int().min(0),
  /** Mean reward for this evaluation method */
  mean: z.number().min(0).max(1),
  /** Sum of squares of rewards (for variance calculation) */
  n2: z.number().min(0),
  /** Total reward for this evaluation method */
  total_reward: z.number().min(0),
  created_at: z.iso.datetime({ offset: true }),
  updated_at: z.iso.datetime({ offset: true }),
});
export type SkillOptimizationArmStat = z.infer<typeof SkillOptimizationArmStat>;
 
export const SkillOptimizationArmStatQueryParams = z
  .object({
    arm_id: z.uuid().optional(),
    evaluation_id: z.uuid().optional(),
    agent_id: z.uuid().optional(),
    skill_id: z.uuid().optional(),
    cluster_id: z.uuid().optional(),
    limit: z.coerce.number().int().positive().optional(),
    offset: z.coerce.number().int().min(0).optional(),
  })
  .strict();
export type SkillOptimizationArmStatQueryParams = z.infer<
  typeof SkillOptimizationArmStatQueryParams
>;
 
export const SkillOptimizationArmStatCreateParams = z
  .object({
    arm_id: z.uuid(),
    evaluation_id: z.uuid(),
    agent_id: z.uuid(),
    skill_id: z.uuid(),
    cluster_id: z.uuid(),
    n: z.number().int().min(0).default(0),
    mean: z.number().min(0).max(1).default(0),
    n2: z.number().min(0).default(0),
    total_reward: z.number().min(0).default(0),
  })
  .strict();
export type SkillOptimizationArmStatCreateParams = z.infer<
  typeof SkillOptimizationArmStatCreateParams
>;
 
export const SkillOptimizationArmStatUpdateParams = z
  .object({
    n: z.number().int().min(0).optional(),
    mean: z.number().min(0).max(1).optional(),
    n2: z.number().min(0).optional(),
    total_reward: z.number().min(0).optional(),
  })
  .strict();
export type SkillOptimizationArmStatUpdateParams = z.infer<
  typeof SkillOptimizationArmStatUpdateParams
>;