Sanity Library Reference Docs
    Preparing search index...
    interface ProjectedActivity {
        actions: ProjectedActionVerdict[];
        activity: string;
        automations?: ProjectedAutomation[];
        classification: "autonomous" | "interactive" | "off-system" | "hybrid";
        completesWithoutCaller: AutonomyVerdict;
        description?: string;
        status: "done" | "failed" | "active" | "skipped";
        title?: string;
        waitsOn?: string[];
    }
    Index

    Properties

    Invocable actions on this activity, each with its allowed/disabled verdict. See ProjectedActionVerdict for what never appears.

    activity: string

    Activity name — what to pass to workflows_fire_action as activity.

    automations?: ProjectedAutomation[]

    Cascade-fired actions, narrated as automation ("fires when …"). Present only when the activity declares any.

    classification: "autonomous" | "interactive" | "off-system" | "hybrid"

    Who, if anyone, fires the activity's actions — interactive (only invocable actions), autonomous (only cascade-fired automation), off-system (work performed outside the system), or hybrid (both kinds). Shape-only; completesWithoutCaller is the causal answer.

    completesWithoutCaller: AutonomyVerdict

    The causal refinement of classification: whether the activity resolves with no caller acting, following its triggers' reads to their producers (a mechanically autonomous trigger that only reads caller-written state still answers no). conditional means it depends on runtime values the static analysis can't see.

    description?: string

    Longer prose description, if provided.

    status: "done" | "failed" | "active" | "skipped"

    Current activity status. Activities are active from stage entry; an activity whose filter scoped it out of this visit is absent from the projection, so skipped here always means an action resolved it so.

    title?: string

    Human label, if provided.

    waitsOn?: string[]

    What the activity waits on when it doesn't complete on its own ("waits on caller action …"), narrated in the workflow's vocabulary. Present only when completesWithoutCaller isn't yes AND something is narratable (a bare conditional, e.g. a cyclic gate, carries none).