I was thinking about the mechanism of the internal voiced thoughts, and as a result coded
this timed messages auxiliary class.

4 dimensionally it can be heavily evolved, and is a boilerplate for internal thoughts.
on the smaller scale, you get "voluntary"(triggerless) event initiation.

the behavior can change also based on how getting the next message is triggered (stand by/input detected).

and of course reminders of daily routines(which can morph with the skill branch).


class TimedMessages:
        check for new messages if you get any input, and it feels like
        the code was waiting for you to tell you something.
        tm = TimedMessages()
        # Print the initial message status (should be False)
        # Add reminders
        tm.addMSG("remind me to work out at 1:24")
        tm.addMSG("remind me to drink water at 11:25")
        # Check if any reminders match the current time
        # make sure a fresh new message was loaded before using it
        # Get the last reminder message
        # tick each think cycle to load new reminders
        print(tm.getMsg()) # becomes true after .getLastMSG
        # Get the last reminder message again
    def __init__(self) -> None:
        self.messages: dict[str, str] = {}
        self.playGround: PlayGround = PlayGround()  # Assuming PlayGround is defined elsewhere
        self.lastMSG: str = "nothing"
        self.msg: bool = False

    def addMSG(self, ear: str) -> None:
        ru1: RegexUtil = RegexUtil()
        tempMSG: str = ru1.extractRegex(r"(?<=remind me to).*?(?=at)", ear)
        if tempMSG:
            timeStamp: str = ru1.extractEnumRegex(enumRegexGrimoire.simpleTimeStamp, ear)
            if timeStamp:
                self.messages[timeStamp] = tempMSG

    def clear(self):

    def tick(self) -> None:
        now: str = self.playGround.getCurrentTimeStamp()
        if now in self.messages:
            if self.lastMSG != self.messages[now]:
                self.lastMSG = self.messages[now]
                self.msg = True

    def getLastMSG(self) -> str:
        self.msg = False
        return self.lastMSG

    def getMsg(self) -> bool:
        return self.msg

say you set a message for 6AM to brush your teeth, and the AI detects you at 7AM she will still remind you.
thoughtful ha?