Timers

Timers allow you to schedule delayed actions and handle time-based events in your MindedJS agents.

Overview

The timer system provides three main functions:

  • resetTimer - Set or reset a timer for a specific session

  • cancelTimer - Cancel an existing timer

  • onTimer - Register handlers for timer events

Setting Timers

Use resetTimer to create or update a timer:

import { resetTimer } from '@minded-ai/mindedjs';

await resetTimer({
  sessionId: 'session-123',
  seconds: 30,
  timerName: 'inactivity-followup',
  payload: {
    message: 'Are you still there?',
    attemptNumber: 1
  }
});

Canceling Timers

Cancel a timer before it triggers:

import { cancelTimer } from '@minded-ai/mindedjs';

await cancelTimer('session-123', 'inactivity-followup');

Handling Timer Events

Register handlers that execute when timers trigger:

import { onTimer } from '@minded-ai/mindedjs';

onTimer({
  timerName: 'inactivity-followup',
  handler: async ({ sessionId, payload }) => {
    // Re-engage with the user
    await agent.invoke({
      triggerName: 'timerFollowup',
      triggerBody: { 
        message: payload.message,
        attemptNumber: payload.attemptNumber 
      },
      sessionId
    });
  }
});

Last updated