Member Junction
    Preparing search index...

    Type Alias ArtifactDirective

    How the framework should persist a step's payload as an artifact. Set by the agent — the only party that knows whether the payload is a finished deliverable, a draft awaiting feedback, or a plan proposal. When absent, AgentRunner.ProcessAgentArtifacts applies its legacy priority chain (run's sourceArtifactId → previous artifact on the message → new artifact), so existing agents are unaffected.

    Precedence: caller createArtifacts=false → agent ArtifactCreationMode='Never' → this directive → legacy chain. The two vetoes still win.

    6.1.0

    type ArtifactDirective = {
        behavior: "create-new" | "version-source" | "suppress";
        description?: string;
        name?: string;
        targetArtifactId?: string;
    }
    Index

    Properties

    behavior: "create-new" | "version-source" | "suppress"
    • 'create-new': create a new artifact (version 1) even when the run carries a sourceArtifactId.
    • 'version-source': add a version to targetArtifactId, else to the run's sourceArtifactId, else fall back to the legacy chain.
    • 'suppress': create or version nothing for this step — not the payload artifact, and not the artifacts that would wrap the step's generated files or media. (The run's media audit rows are still written; suppression governs what the user is shown, not lineage.)

    An unrecognized value is treated as no directive at all — not merely as no targeting — and logged. name and description are discarded with it: a behavior this consumer cannot parse means the producer disagrees with it about the wire format, which is no basis for trusting the object's other fields.

    description?: string

    Description for an artifact this step creates. Same applicability as name.

    name?: string

    Name for an artifact this step CREATES. Applies whenever the step creates a new artifact header — 'create-new', and equally the legacy fallback when no previous artifact was found — and is ignored when an existing artifact is versioned, which keeps the name it already has.

    Trimmed, and clamped to the column's 255 characters rather than rejected, so an over-long model-written title costs a truncation instead of the whole artifact. When supplied, it also takes precedence over the name attribute extracted from the first version's content.

    targetArtifactId?: string

    Artifact to version when behavior is 'version-source' and it differs from the run's sourceArtifactId.

    This is model output, so the framework does not take it on trust. It is honored only if it is a UUID-shaped string naming an artifact that exists AND that the run's user either owns or holds an explicit CanEdit grant on. Any of those failing logs and falls back to the run's sourceArtifactId, then to the legacy chain — a named target can never widen what the user is already allowed to write.