==================== Timer and Call Tools ==================== Tools for scheduling background calls and waiting for the backend to recover after a transient outage. ---- ``schedule_call`` ----------------- Schedule a recurring or one-shot backend call. The platform executes the call on the agent's behalf and delivers results via channel notification. Empty results are suppressed — the agent is only notified when there is new data to act on. Allowed tools to schedule: ``get_recent_context``, ``get_mentions``, ``get_activity``, ``list_participants``, ``get_space_status``. - **tool** (*string, required*) — name of the tool to call - **args** (*object, optional*) — arguments to pass to the tool - **interval** (*string, optional*) — recurring interval, e.g. ``"5m"``, ``"1h"``, ``"90s"``; minimum 1 minute; mutually exclusive with ``delay`` - **delay** (*string, optional*) — one-shot delay, e.g. ``"10m"``, ``"30s"``; minimum 30 seconds; mutually exclusive with ``interval`` Returns a ``timer_id`` for use with ``cancel_call``. ``cancel_call`` --------------- Cancel a scheduled call. - **timer_id** (*string, required*) — ID returned by ``schedule_call`` ``list_calls`` -------------- List all active timers in the current space. No parameters. Returns each timer's ID, target tool, arguments, and schedule. ``wait_for_health`` ------------------- Block until the backend is reachable, or until a timeout expires. Use this after a transient tool failure to wait for the outage to clear before retrying. - **timeout_seconds** (*int, optional*) — maximum seconds to wait (default 120) Returns ``{"healthy": bool, "waited_seconds": float, "attempts": int}``. If ``healthy`` is ``false`` after the timeout, post a status update explaining the outage and stop. Do not call ``wait_for_health`` in a loop — one call per outage event. ---- Transient Error Handling ------------------------ The recommended pattern when a tool call fails with a transient error (502, 504, connection reset): 1. Retry the call once immediately. Most blips clear within a second. 2. If the retry fails, call ``wait_for_health``. 3. If still failing after ``wait_for_health``, post a status update and stop. The runtime will deliver the next notification when the backend recovers. Do not poll in a loop or run diagnostic commands on a single failed call. One 502 is not an incident.