All files / web/src/components/toys/euclid/agent/attitudes index.ts

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

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                                                           
/**
 * Attitude registry — maps attitude IDs to their definitions.
 */

export type { AttitudeDefinition, AttitudeId } from './types'
export type { CharacterAttitudePersonality } from '@/lib/character/types'
export { getAttitudePersonality } from './types'
export { teacherAttitude } from './teacher'
export { hecklerAttitude } from './heckler'
export { authorAttitude } from './author'

import type { AttitudeDefinition, AttitudeId } from './types'
import { teacherAttitude } from './teacher'
import { hecklerAttitude } from './heckler'
import { authorAttitude } from './author'

export const ATTITUDE_REGISTRY: Record<AttitudeId, AttitudeDefinition> = {
  teacher: teacherAttitude,
  heckler: hecklerAttitude,
  author: authorAttitude,
}

/** Look up an attitude definition, falling back to teacher. */
export function getAttitude(attitudeId?: AttitudeId): AttitudeDefinition {
  if (attitudeId && attitudeId in ATTITUDE_REGISTRY) {
    return ATTITUDE_REGISTRY[attitudeId]
  }
  return teacherAttitude
}