Coming Soon!

Type chaining is barely supported, let alone documented.

The basic idea of type chaining is to allow Agents to form a chain of execution that conditionally runs the next Agent. This is already done to a minimal extent, like AOAN running a raw Agent. I plan to extend this to allow longer chains. For example (note the importance of order):

Repeat 3 AOAN /usr/local/sbin/coreclean
AOAN Repeat 3 /usr/local/sbin/coreclean

One common example of the usefulness of this is the common scheduling function that cron fails to provide: running something on the last day of the month. The solution to this, using type chaining, is to create an Agent that schedules for the last day of the month (call it LDoM) before a Cron entry:

LDoM Cron 30 23 * * * echo "It's 11:30pm on the last day of the month."

Of course, whether such a specific module would be worthwhile is questionable. A more general module might allow you to instead specify a day of month offset (call it DoMO), so you could do something like:

DoMO -4 Cron 00 6 * * * echo "Rent is due in 5 days. Have you cut a check yet?"

There are solutions that don't require type chaining; writing an enhanced cron module is an option. In that case, the modular nature of AgentD would be more valuable that the chaining feature. Nevertheless, I think chaining will prove to be useful.