action posthog_tasks_runs_retrieve { label: "Get task run" description: "Retrieve a single run for a specific task." provider: posthog method: GET path: "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/" encoding: json input: { type: "object" properties: { id: { type: "string" } task_id: { type: "string" } } required: ["id", "task_id"] additionalProperties: false } output: { type: "object" description: "Detail response for a task run.\n\nReads from a frozen ``TaskRunDetailDTO`` produced by the facade mapper (which computes the\npresigned ``log_url`` and parses ``runtime_adapter`` / ``provider`` / ``model`` /\n``reasoning_effort`` off the run state). ``task`` is the parent task id. Reused as the nested\n``latest_run`` shape by the task detail response." required: ["artifacts", "branch", "environment", "error_message", "id", "output", "stage", "state", "status", "task"] properties: { artifacts: { type: "array" items: { type: "object" required: ["name", "storage_path", "type", "uploaded_at"] properties: { content_type: { type: "string" description: "Optional MIME type" } dismissed_at: { type: "string" description: "Timestamp when a user dismissed the artifact. Absent while the artifact is shown." } id: { type: "string" description: "Stable identifier for the artifact within this run" } metadata: { description: "Optional structured metadata for special artifact types, such as skill bundles." type: "object" } name: { type: "string" description: "Artifact file name" } size: { type: "integer" description: "Artifact size in bytes" } source: { type: "string" description: "Source of the artifact, such as agent_output or user_attachment" } storage_path: { type: "string" description: "S3 object key for the artifact" } type: { type: "string" description: "Artifact classification (plan, context, etc.)" } uploaded_at: { type: "string" description: "Timestamp when the artifact was uploaded" } url: { type: "string" format: "uri" description: "Stable download URL for the artifact. Populated on the finalize-upload response so the caller can link to the file; it redirects to a fresh presigned URL on each request and is not persisted on the manifest." } } } } branch: { type: ["string", "null"] } completed_at: { type: ["string", "null"] format: "date-time" } created_at: { type: ["string", "null"] format: "date-time" } environment: { type: "string" } error_message: { type: ["string", "null"] } id: { type: "string" format: "uuid" } log_url: { type: ["string", "null"] format: "uri" description: "Presigned S3 URL for log access (valid for 1 hour)." } model: { type: ["string", "null"] description: "Configured LLM model identifier for this run." } output: { type: ["object", "null"] } provider: { description: "Configured LLM provider for this run, such as 'anthropic' or 'openai'.\n\n* `anthropic` - anthropic\n* `openai` - openai" type: "object" } reasoning_effort: { description: "Configured reasoning effort for this run when the selected model supports it.\n\n* `off` - off\n* `minimal` - minimal\n* `low` - low\n* `medium` - medium\n* `high` - high\n* `xhigh` - xhigh\n* `max` - max\n* `ultracode` - ultracode" type: "object" } runtime_adapter: { description: "Configured runtime adapter for this run, such as 'claude' or 'codex'.\n\n* `claude` - claude\n* `codex` - codex" type: "object" } stage: { type: ["string", "null"] } state: { type: "object" } status: { type: "string" } task: { type: "string" format: "uuid" description: "Parent task id this run belongs to." } updated_at: { type: ["string", "null"] format: "date-time" } } } }