addCronTask function
Append a task. Returns the generated id.
When durable is false the task is held in process memory only -- it fires
on schedule this session but is never written to .neomage/scheduled_tasks.json.
Implementation
Future<String> addCronTask({
required String cron,
required String prompt,
required bool recurring,
required bool durable,
String? agentId,
List<CronTask>? sessionTasks,
}) async {
// Short ID -- 8 hex chars.
final random = Random.secure();
final id = List.generate(
8,
(_) => random.nextInt(16).toRadixString(16),
).join();
final task = CronTask(
id: id,
cron: cron,
prompt: prompt,
createdAt: DateTime.now().millisecondsSinceEpoch,
recurring: recurring,
);
if (!durable) {
final taskWithAgent = agentId != null
? task.copyWith(agentId: agentId, durable: false)
: task.copyWith(durable: false);
sessionTasks?.add(taskWithAgent);
return id;
}
final tasks = await readCronTasks();
tasks.add(task);
await writeCronTasks(tasks);
return id;
}