Scenes Resource
Create, declare, and monitor scenes
const scenes = rodeo.scenes;create(input)
Creates a scene with beats in draft status.
const result = await rodeo.scenes.create({
intention_id: "uuid",
audience_id: "uuid",
arc_type: "approach",
constraints: { maxBeats: 4, maxDuration: "2h", budget: 50 },
beats: [
{
sequence: 1,
channel_id: "uuid",
content: { body: "Hello" },
tone: { warmth: "warm", urgency: "none", ask: "implicit" },
timing: { mode: "absolute", at: "2025-01-15T08:00:00Z" },
},
],
});
// result.scene, result.beatsAccepts both snake_case and camelCase input fields.
get(id)
Returns scene with beats, sensor readings, and outcome.
const scene = await rodeo.scenes.get("uuid");
// scene.scene, scene.beats, scene.sensor_readings, scene.outcomelist(filters?)
const result = await rodeo.scenes.list({
status: "live",
arc_type: "surround",
offset: 0,
limit: 20,
});
// result.scenes, result.total, result.offset, result.limitdeclare(id)
Moves scene from draft to live (or declared if copilot approval required).
const result = await rodeo.scenes.declare("uuid");
// result.scene, result.ledger_entry, result.action_cardabort(id)
const result = await rodeo.scenes.abort("uuid");
// result.scene (status: "aborted")events(id, filters?)
const events = await rodeo.scenes.events("uuid", { type: "beat_fired" });stream(id)
Returns AsyncIterable<SceneEvent>. See Streaming.
for await (const event of rodeo.scenes.stream("uuid")) {
console.log(event.type, event.data);
}build()
Returns a SceneBuilder. See Scene Builder.
const scene = await rodeo.scenes
.build()
.intention("uuid")
.audience("uuid")
.arc("approach")
.constraints({ maxBeats: 4 })
.beat({ ... })
.create();