// 1 · Spawn it. The objective is the input.const { id } = await spawn_creation({ brief: "Launch the Directory", objective: { kpi: "users.sources_connected", target: 400 },}); // 2 · Watch it. One call, every loop.await list_creations({ status: "running" }); // 3 · It holds where you told it to.await list_pending_approvals(); // 4 · You decide. It carries on.await decide_approval({ id: "ap_7c41", decision: "approve" }); // Weeks later:await read_creation({ id });// → { status: "complete", objective_met: true }The whole lifecycle is four calls.
spawn_creation births a campaign with the number it exists to move. Not an open rate. A column in your own database: sign-ups, activations, sources connected. From that moment the loop creates, launches, measures and learns without another instruction.
Your agent's job collapses to supervision. list_creations to see what is running, list_pending_approvals to see where it is holding, decide_approval to release it. When the KPI says done, the loop reports complete and stops. The exit condition is the objective, not a schedule.