Skip to main content

Task automations

Create and manage tasks (v3 task-automation API), recurring schedules, scripts, secrets, selection config, and task metrics. Available as mgr.tasks / mgr.Tasks / mgr.tasks. (In Rust, schedules are a top-level mgr.schedules namespace rather than tasks.schedules, since the task-schedule API is a separate spec.)

Create a task

const task = await mgr.tasks.create({ /* SubmitTaskBody */ });
const task2 = await mgr.tasks.createFromTemplate("callback", { /* overrides */ });

List tasks

for await (const task of mgr.tasks.list({ filter: "state==active" })) {
console.log(task.id);
}
const all = await mgr.tasks.listAll();

Get, update, interrupt

const task = await mgr.tasks.get(taskId);
await mgr.tasks.update(taskId, { /* UpdateTaskBody */ });
await mgr.tasks.interrupt(taskId, "Canceled"); // Canceled | Completed | Failed

Schedules

const schedules = await mgr.tasks.schedules.list();
await mgr.tasks.schedules.create({ /* SubmitTaskScheduleBody */ });
await mgr.tasks.schedules.get("nightly-report");
await mgr.tasks.schedules.delete("nightly-report");

Scripts, secrets & selection config

await mgr.tasks.scripts.list("javascript");
await mgr.tasks.scripts.submit("javascript", { /* SubmitScript */ });

await mgr.tasks.secrets.listPrefixes();
await mgr.tasks.secrets.create("my-prefix", { token: "…" });

const cfg = await mgr.tasks.selectionConfig.read();
await mgr.tasks.selectionConfig.update({ /* SelectionConfigurationRequest */ });

Metrics, usage, logs & agent actions

const journal = await mgr.tasks.metrics.taskJournal(taskId);
const usage = await mgr.tasks.usage();
const logs = await mgr.tasks.logs();

await mgr.tasks.agentAction(taskId, "Accept", { /* ManualAction */ });
await mgr.tasks.setAgentLock("unlock");
await mgr.tasks.testAction({ /* TestActionRequest */ });

Reference