diff --git a/shared/src/types.ts b/shared/src/types.ts index b8f43d8..54cd457 100644 --- a/shared/src/types.ts +++ b/shared/src/types.ts @@ -267,6 +267,51 @@ export interface Desire { cooldownTicks?: number; } +// Admin panel types +export interface TunableConstants { + TICK_RATE: number; + BROADCAST_EVERY_N_TICKS: number; + HUNGER_DECAY_PER_TICK: number; + ENERGY_DECAY_PER_TICK: number; + HUNGER_THRESHOLD: number; + ENERGY_THRESHOLD: number; + NEED_RECOVERY_RATE: number; + SLEEP_ENERGY_RECOVERY_PER_TICK: number; + SLEEP_HUNGER_DECAY_MULTIPLIER: number; + SLEEP_WAKE_THRESHOLD: number; + SLEEP_VOLUNTARY_ENERGY_THRESHOLD: number; + PRODUCTIVITY_DECAY_PER_TICK: number; + PRODUCTIVITY_THRESHOLD: number; + PRODUCTIVITY_RECOVERY_RATE: number; + DAY_NIGHT_RATIO: number; + DAY_HOURS: number; + SUNSET_DURATION_HOURS: number; + SUNRISE_DURATION_HOURS: number; + NIGHT_DARKNESS: number; + AWARENESS_RADIUS: number; + FACING_DURATION: number; + PAUSING_DURATION: number; + EMOTING_DURATION: number; + SOCIAL_GLOBAL_COOLDOWN: number; + SOCIAL_PAIR_COOLDOWN: number; + PROPOSAL_EMOTING_DURATION: number; + MAX_NPC_COUNT: number; + MOVE_SPEED: number; +} + +export type TunableKey = keyof TunableConstants; + +// Log panel types +export type LogSeverity = 'error' | 'warning' | 'info'; +export type LogCategory = 'LLM' | 'Save' | 'Network' | 'Performance' | 'Game'; + +export interface LogEntry { + timestamp: number; + severity: LogSeverity; + category: LogCategory; + message: string; +} + // Server -> Client events export interface ServerEvents { 'world-state': (data: WorldState) => void; @@ -286,6 +331,10 @@ export interface ServerEvents { 'stockpile-event': (data: StockpileLogEntry) => void; 'stockpile-history': (data: StockpileLogEntry[]) => void; 'stockpile-summary': (data: Record) => void; + 'admin-auth-result': (data: { success: boolean; constants?: TunableConstants }) => void; + 'admin-constants-updated': (data: TunableConstants) => void; + 'log-history': (data: LogEntry[]) => void; + 'log-entry': (data: LogEntry) => void; } // Client -> Server events @@ -295,4 +344,9 @@ export interface ClientEvents { 'superlatives-subscribe': () => void; 'superlatives-unsubscribe': () => void; 'follow-npc': (data: { entityId: EntityId | null }) => void; + 'admin-auth': (data: { password: string }) => void; + 'admin-update-constant': (data: { key: TunableKey; value: number }) => void; + 'admin-reset-defaults': () => void; + 'log-subscribe': () => void; + 'log-unsubscribe': () => void; }