a tool to help your Letta AI agents navigate bluesky
at main 1.2 kB view raw
1/** 2 * Helper functions for determining agent sleep/wake status 3 * These functions handle both normal schedules and cross-midnight schedules 4 */ 5 6/** 7 * Core logic: Determines if agent should be asleep at given hour 8 */ 9export const isAgentAsleep = ( 10 hour: number, 11 wakeTime: number, 12 sleepTime: number, 13): boolean => { 14 // Edge case: if wake == sleep, agent has zero awake time (always asleep) 15 if (wakeTime === sleepTime) { 16 return true; 17 } 18 19 // If sleepTime > wakeTime: normal same-day schedule (e.g., wake=8, sleep=22) 20 // Agent is asleep from sleepTime until midnight, OR from midnight until wakeTime 21 if (sleepTime > wakeTime) { 22 return hour >= sleepTime || hour < wakeTime; 23 } 24 25 // If sleepTime < wakeTime: schedule crosses midnight (e.g., wake=9, sleep=2) 26 // Agent is asleep from sleepTime until wakeTime (same day) 27 return hour >= sleepTime && hour < wakeTime; 28}; 29 30/** 31 * Semantic wrapper: Determines if agent should be awake at given hour 32 * Simply the inverse of isAgentAsleep 33 */ 34export const isAgentAwake = ( 35 hour: number, 36 wakeTime: number, 37 sleepTime: number, 38): boolean => { 39 return !isAgentAsleep(hour, wakeTime, sleepTime); 40};