{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/connic-co/json-schema/connic-co-agent-run-with-traces-schema.json",
  "title": "AgentRunWithTraces",
  "description": "One run with its content, execution trace, token usage and cost.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/connic-co-public-openapi.json#/components/schemas/AgentRunWithTraces",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "agent_name": {
      "type": "string",
      "title": "Agent Name",
      "description": "Base agent name; runs handled by an A/B variant are stored under the base name."
    },
    "test_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Test Name",
      "description": "A/B test variant that handled the run, or the test case name for `deploy_gate` runs; null for runs of the base agent."
    },
    "ab_test_ids": {
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "type": "array",
      "title": "Ab Test Ids",
      "description": "IDs of the A/B tests this run was counted in."
    },
    "status": {
      "$ref": "#/$defs/RunStatus",
      "description": "`scheduled` and `queued` runs have not started, `started` runs are executing, `awaiting_approval` runs wait for a tool approval, and `completed`, `failed` and `cancelled` are final."
    },
    "input": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Input",
      "description": "Run input as text, with the environment's redacted keys masked; null after the run is deleted."
    },
    "output": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Output",
      "description": "Final agent output, with the environment's redacted keys masked; null until the run finishes and after it is deleted."
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error",
      "description": "Failure or cancellation message, if any; null after the run is deleted."
    },
    "queued_at": {
      "type": "string",
      "format": "date-time",
      "title": "Queued At",
      "description": "When the run was created."
    },
    "started_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Started At",
      "description": "When execution began; null until the run starts."
    },
    "ended_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ended At",
      "description": "When the run reached a final status; null while it is active."
    },
    "duration_ms": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Duration Ms",
      "description": "Execution time in milliseconds, excluding time spent waiting for approvals or child runs; null until the run ends."
    },
    "data_deleted_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Data Deleted At",
      "description": "When the run's content and trace were deleted; null if they were not. Status, usage and cost remain."
    },
    "can_delete_data": {
      "type": "boolean",
      "title": "Can Delete Data",
      "description": "True when the run and its background processing (usage accounting, judge evaluations, outbound deliveries) have finished, so it can be deleted.",
      "default": false
    },
    "scheduled_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scheduled At",
      "description": "When a scheduled run is due to start; null for runs queued immediately."
    },
    "queued_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Queued Reason",
      "description": "Why a queued run has not started yet, for example `concurrency_wait`, `credit_exhausted` or `budget_limit_exceeded:<spend alert ID>`. Null once the run starts."
    },
    "token_usage": {
      "$ref": "#/$defs/PublicRunTokenUsageResponse",
      "description": "Token counts for the agent's own model calls, excluding judge evaluations, with one `model_usages` entry per call."
    },
    "traces": {
      "items": {
        "$ref": "#/$defs/AgentTraceResponse"
      },
      "type": "array",
      "title": "Traces",
      "description": "Execution trace: spans and log entries ordered by `start_time`, then `span_order`. Empty after the run is deleted.",
      "default": []
    },
    "connector": {
      "anyOf": [
        {
          "$ref": "#/$defs/ConnectorInfo"
        },
        {
          "type": "null"
        }
      ],
      "description": "Connector whose event started the run; null for runs not started by a connector."
    },
    "triggered_by": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Triggered By",
      "description": "ID of the run whose agent started this run; older runs may hold a free-text value instead."
    },
    "triggered_by_run": {
      "anyOf": [
        {
          "$ref": "#/$defs/TriggeredByRunInfo"
        },
        {
          "type": "null"
        }
      ],
      "description": "Parent run details when another agent in the same deployment started this run; null otherwise."
    },
    "trigger_source": {
      "$ref": "#/$defs/TriggerSource",
      "description": "What started the run: a user or API call, a connector event, another agent, or a deployment test.",
      "default": "manual"
    },
    "deployment_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Deployment Id",
      "description": "ID of the deployment that ran this run; null until the run is picked up."
    },
    "token_cost": {
      "anyOf": [
        {
          "$ref": "#/$defs/PublicTokenCostResponse"
        },
        {
          "type": "null"
        }
      ],
      "description": "Cost of the agent's own model calls, excluding judge evaluations; null when no model calls were recorded."
    },
    "run_context": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Run Context",
      "description": "Context values stored by the run's middleware and tools, with the environment's redacted keys masked; null after the run is deleted."
    },
    "session": {
      "anyOf": [
        {
          "$ref": "#/$defs/RunSessionInfo"
        },
        {
          "type": "null"
        }
      ],
      "description": "Persistent session the run belongs to; null for runs without one."
    },
    "guardrail_interventions": {
      "items": {
        "$ref": "#/$defs/PublicGuardrailInterventionResponse"
      },
      "type": "array",
      "title": "Guardrail Interventions",
      "description": "Guardrail checks that warned about, blocked or redacted content during the run."
    }
  },
  "type": "object",
  "required": [
    "id",
    "agent_name",
    "status",
    "queued_at",
    "token_usage"
  ],
  "$defs": {
    "AgentTraceResponse": {
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "title": "Id"
        },
        "run_id": {
          "type": "string",
          "format": "uuid",
          "title": "Run Id",
          "description": "ID of the run this entry belongs to."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Span name, or the log source for `log` entries, such as `log:system` or `log:tool:<tool name>`."
        },
        "type": {
          "type": "string",
          "enum": [
            "span",
            "log"
          ],
          "title": "Type",
          "description": "`span` for a timed step such as a model or tool call; `log` for a log line written during the run."
        },
        "status": {
          "type": "string",
          "title": "Status",
          "description": "Span outcome; a value containing `ERROR` (any case) marks a failed span. For `log` entries, the log level: `debug`, `info`, `warning` or `error`."
        },
        "inputs": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Inputs",
          "description": "Step input as text, with the environment's redacted keys masked."
        },
        "outputs": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Outputs",
          "description": "Step output as text, with the environment's redacted keys masked. For `log` entries, the log message."
        },
        "thoughts": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thoughts",
          "description": "Model reasoning text for the step, when the model returns it."
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "title": "Start Time",
          "description": "When the step started or the log line was written."
        },
        "end_time": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "End Time",
          "description": "When the span ended; null for `log` entries and unfinished spans."
        },
        "duration_ms": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration Ms",
          "description": "Span duration in milliseconds; null for `log` entries."
        },
        "metadata": {
          "additionalProperties": true,
          "type": "object",
          "title": "Metadata",
          "description": "Additional span attributes as key-value pairs; empty for `log` entries."
        },
        "span_order": {
          "type": "integer",
          "title": "Span Order",
          "description": "Recording order within the run; breaks ties between equal `start_time` values."
        },
        "span_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Span Id",
          "description": "Span identifier, unique within the run."
        },
        "parent_span_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Parent Span Id",
          "description": "`span_id` of the enclosing span; null for top-level spans and `log` entries."
        }
      },
      "type": "object",
      "required": [
        "id",
        "run_id",
        "name",
        "type",
        "status",
        "inputs",
        "outputs",
        "thoughts",
        "start_time",
        "end_time",
        "duration_ms",
        "metadata",
        "span_order",
        "span_id",
        "parent_span_id"
      ],
      "title": "AgentTraceResponse",
      "description": "One span or log entry from a run's execution trace."
    },
    "ConnectorInfo": {
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Connector type, such as `http` or `cron`."
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type"
      ],
      "title": "ConnectorInfo",
      "description": "Connector whose event started a run."
    },
    "PublicGuardrailInterventionResponse": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name",
          "description": "Name of the custom guardrail. Null for built-in types."
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Type",
          "description": "Guardrail type, such as `prompt_injection`, `pii`, `moderation`, `topic_restriction`, `regex` or `custom`."
        },
        "direction": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Direction",
          "description": "`input` when the rule checked the run input, `output` when it checked the agent output."
        },
        "mode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Mode",
          "description": "Action configured for the rule: `block`, `warn` or `redact`."
        },
        "status": {
          "type": "string",
          "enum": [
            "warned",
            "blocked",
            "redacted"
          ],
          "title": "Status",
          "description": "Outcome: `warned` let the content through with a warning, `blocked` stopped it, `redacted` removed the matched content."
        },
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Message",
          "description": "Explanation from the guardrail. Empty after the run is deleted."
        }
      },
      "type": "object",
      "required": [
        "status"
      ],
      "title": "PublicGuardrailInterventionResponse",
      "description": "A guardrail rule that did not pass during a run."
    },
    "PublicModelTokenUsageResponse": {
      "properties": {
        "input_tokens": {
          "type": "integer",
          "title": "Input Tokens",
          "description": "Prompt tokens sent to the model, including cached tokens."
        },
        "output_tokens": {
          "type": "integer",
          "title": "Output Tokens",
          "description": "Tokens the model generated, excluding thinking tokens."
        },
        "cached_input_tokens": {
          "type": "integer",
          "title": "Cached Input Tokens",
          "description": "Part of `input_tokens` read from the provider's prompt cache."
        },
        "cache_write_input_tokens": {
          "type": "integer",
          "title": "Cache Write Input Tokens",
          "description": "Part of `input_tokens` written to the provider's prompt cache.",
          "default": 0
        },
        "thinking_tokens": {
          "type": "integer",
          "title": "Thinking Tokens",
          "description": "Reasoning tokens the model generated."
        },
        "total_tokens": {
          "type": "integer",
          "title": "Total Tokens",
          "description": "Input, output and thinking tokens combined."
        },
        "audio_input_tokens": {
          "type": "integer",
          "title": "Audio Input Tokens",
          "description": "Part of `input_tokens` that was audio.",
          "default": 0
        },
        "audio_output_tokens": {
          "type": "integer",
          "title": "Audio Output Tokens",
          "description": "Part of `output_tokens` that was audio.",
          "default": 0
        },
        "audio_cached_input_tokens": {
          "type": "integer",
          "title": "Audio Cached Input Tokens",
          "description": "Part of `cached_input_tokens` that was audio.",
          "default": 0
        },
        "audio_thinking_tokens": {
          "type": "integer",
          "title": "Audio Thinking Tokens",
          "description": "Part of `thinking_tokens` that was audio.",
          "default": 0
        },
        "audio_usage_missing": {
          "type": "boolean",
          "title": "Audio Usage Missing",
          "description": "True when at least one model call did not report its audio breakdown, so audio counts may be too low.",
          "default": false
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model",
          "description": "Model that served the request. Null when not recorded."
        }
      },
      "type": "object",
      "required": [
        "input_tokens",
        "output_tokens",
        "cached_input_tokens",
        "thinking_tokens",
        "total_tokens",
        "model"
      ],
      "title": "PublicModelTokenUsageResponse"
    },
    "PublicRunTokenUsageResponse": {
      "properties": {
        "input_tokens": {
          "type": "integer",
          "title": "Input Tokens",
          "description": "Prompt tokens sent to the model, including cached tokens."
        },
        "output_tokens": {
          "type": "integer",
          "title": "Output Tokens",
          "description": "Tokens the model generated, excluding thinking tokens."
        },
        "cached_input_tokens": {
          "type": "integer",
          "title": "Cached Input Tokens",
          "description": "Part of `input_tokens` read from the provider's prompt cache."
        },
        "cache_write_input_tokens": {
          "type": "integer",
          "title": "Cache Write Input Tokens",
          "description": "Part of `input_tokens` written to the provider's prompt cache.",
          "default": 0
        },
        "thinking_tokens": {
          "type": "integer",
          "title": "Thinking Tokens",
          "description": "Reasoning tokens the model generated."
        },
        "total_tokens": {
          "type": "integer",
          "title": "Total Tokens",
          "description": "Input, output and thinking tokens combined."
        },
        "audio_input_tokens": {
          "type": "integer",
          "title": "Audio Input Tokens",
          "description": "Part of `input_tokens` that was audio.",
          "default": 0
        },
        "audio_output_tokens": {
          "type": "integer",
          "title": "Audio Output Tokens",
          "description": "Part of `output_tokens` that was audio.",
          "default": 0
        },
        "audio_cached_input_tokens": {
          "type": "integer",
          "title": "Audio Cached Input Tokens",
          "description": "Part of `cached_input_tokens` that was audio.",
          "default": 0
        },
        "audio_thinking_tokens": {
          "type": "integer",
          "title": "Audio Thinking Tokens",
          "description": "Part of `thinking_tokens` that was audio.",
          "default": 0
        },
        "audio_usage_missing": {
          "type": "boolean",
          "title": "Audio Usage Missing",
          "description": "True when at least one model call did not report its audio breakdown, so audio counts may be too low.",
          "default": false
        },
        "model_usages": {
          "items": {
            "$ref": "#/$defs/PublicModelTokenUsageResponse"
          },
          "type": "array",
          "title": "Model Usages",
          "description": "Usage of each model request, in call order."
        }
      },
      "type": "object",
      "required": [
        "input_tokens",
        "output_tokens",
        "cached_input_tokens",
        "thinking_tokens",
        "total_tokens",
        "model_usages"
      ],
      "title": "PublicRunTokenUsageResponse"
    },
    "PublicTokenCostBreakdownResponse": {
      "properties": {
        "input_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Input Cost",
          "description": "Cost of input tokens neither read from nor written to the cache, including audio. Null when the split by token type is unknown."
        },
        "output_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Output Cost",
          "description": "Cost of output tokens, including audio. Null when the split by token type is unknown."
        },
        "cached_input_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cached Input Cost",
          "description": "Cost of cached input tokens. Null when the split by token type is unknown."
        },
        "cache_write_input_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cache Write Input Cost",
          "description": "Cost of input tokens written to the cache. Null when the split by token type is unknown.",
          "default": "0.000000000000"
        },
        "thinking_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Thinking Cost",
          "description": "Cost of thinking tokens. Null when the split by token type is unknown."
        },
        "agent_cost": {
          "type": "string",
          "title": "Agent Cost",
          "description": "Cost of the agent's own model calls."
        },
        "judge_cost": {
          "type": "string",
          "title": "Judge Cost",
          "description": "Cost of judge evaluations."
        },
        "total_cost": {
          "type": "string",
          "title": "Total Cost",
          "description": "`agent_cost` plus `judge_cost`. Always exact, even when the token type split is null."
        },
        "audio_input_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Input Cost",
          "description": "Audio share of `input_cost`. Null when the split by token type is unknown.",
          "default": "0.000000000000"
        },
        "audio_output_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Output Cost",
          "description": "Audio share of `output_cost`. Null when the split by token type is unknown.",
          "default": "0.000000000000"
        },
        "audio_cached_input_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Cached Input Cost",
          "description": "Audio share of `cached_input_cost`. Null when the split by token type is unknown.",
          "default": "0.000000000000"
        },
        "audio_thinking_cost": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Thinking Cost",
          "description": "Audio share of `thinking_cost`. Null when the split by token type is unknown.",
          "default": "0.000000000000"
        }
      },
      "type": "object",
      "required": [
        "input_cost",
        "output_cost",
        "cached_input_cost",
        "thinking_cost",
        "agent_cost",
        "judge_cost",
        "total_cost"
      ],
      "title": "PublicTokenCostBreakdownResponse",
      "description": "Cost in one currency, split by token type and by agent versus judge. Amounts are decimal strings."
    },
    "PublicTokenCostCoverageResponse": {
      "properties": {
        "complete": {
          "type": "boolean",
          "title": "Complete",
          "description": "True when every model call could be priced."
        },
        "call_count": {
          "type": "integer",
          "title": "Call Count",
          "description": "Model calls covered by the report."
        },
        "priced_call_count": {
          "type": "integer",
          "title": "Priced Call Count",
          "description": "Calls included in the cost amounts."
        },
        "unpriced_call_count": {
          "type": "integer",
          "title": "Unpriced Call Count",
          "description": "Calls without a known price or without reported token usage. They are left out of the amounts."
        },
        "unpriced_models": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Unpriced Models",
          "description": "Models of the unpriced calls."
        }
      },
      "type": "object",
      "required": [
        "complete",
        "call_count",
        "priced_call_count",
        "unpriced_call_count",
        "unpriced_models"
      ],
      "title": "PublicTokenCostCoverageResponse",
      "description": "How many model calls could be priced."
    },
    "PublicTokenCostResponse": {
      "properties": {
        "amounts": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "title": "Amounts",
          "description": "Total cost keyed by currency code (`EUR` or `USD`), as a decimal string with 12 decimal places. Only currencies with a nonzero amount are included."
        },
        "breakdown": {
          "additionalProperties": {
            "$ref": "#/$defs/PublicTokenCostBreakdownResponse"
          },
          "type": "object",
          "title": "Breakdown",
          "description": "Cost split by token type and by agent versus judge, keyed by currency code."
        },
        "coverage": {
          "$ref": "#/$defs/PublicTokenCostCoverageResponse",
          "description": "Whether every model call could be priced. Amounts exclude unpriced calls."
        },
        "converted_to": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Converted To",
          "description": "Currency the amounts were converted to at the daily ECB reference rate of each call. Present only when `convert_costs_to` is set."
        },
        "native_amounts": {
          "anyOf": [
            {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Native Amounts",
          "description": "Totals in each model's pricing currency before conversion, as decimal strings keyed by currency code. Present only when `convert_costs_to` is set."
        }
      },
      "type": "object",
      "required": [
        "amounts",
        "breakdown",
        "coverage"
      ],
      "title": "PublicTokenCostResponse",
      "description": "Token cost in each model's pricing currency, or in one currency when `convert_costs_to` is set."
    },
    "RunSessionInfo": {
      "properties": {
        "session_id": {
          "type": "string",
          "title": "Session Id",
          "description": "Session ID, unique within the app name and user."
        },
        "app_name": {
          "type": "string",
          "title": "App Name",
          "description": "Agent application name that owns the session."
        },
        "user_id": {
          "type": "string",
          "title": "User Id",
          "description": "Agent user identity the session belongs to."
        }
      },
      "type": "object",
      "required": [
        "session_id",
        "app_name",
        "user_id"
      ],
      "title": "RunSessionInfo",
      "description": "Persistent session a run belongs to."
    },
    "RunStatus": {
      "type": "string",
      "enum": [
        "scheduled",
        "queued",
        "started",
        "awaiting_approval",
        "completed",
        "failed",
        "cancelled",
        "blocked"
      ],
      "title": "RunStatus",
      "description": "Run state: `scheduled` until its start time, `queued`, `started` while executing, `awaiting_approval` while paused for a human decision, then `completed`, `failed` or `cancelled`."
    },
    "TriggerSource": {
      "type": "string",
      "enum": [
        "manual",
        "connector",
        "agent",
        "deploy_gate"
      ],
      "title": "TriggerSource",
      "description": "How a run was started: `manual` by a user, `connector` by an inbound connector event, `agent` by another agent, or `deploy_gate` as a deployment test run."
    },
    "TriggeredByRunInfo": {
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "title": "Id"
        },
        "agent_name": {
          "type": "string",
          "title": "Agent Name",
          "description": "Agent of the parent run."
        }
      },
      "type": "object",
      "required": [
        "id",
        "agent_name"
      ],
      "title": "TriggeredByRunInfo",
      "description": "The run whose agent started this run."
    }
  }
}