> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runaether.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Unpin a task



## OpenAPI

````yaml api-reference/openapi.v1.json DELETE /tasks/{taskID}/pin
openapi: 3.1.0
info:
  title: Aether Public API
  version: 0.1.0
  description: >-
    The versioned, public Aether REST API. Authenticate with an `aether_`
    platform API key or a session token.
servers:
  - url: https://api.runaether.dev/v1
security:
  - bearerAuth: []
paths:
  /tasks/{taskID}/pin:
    delete:
      tags:
        - tasks
      summary: Unpin a task
      operationId: unpinTask
      parameters:
        - in: path
          name: taskID
          required: true
          schema:
            format: uuid
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                discriminator:
                  mapping:
                    awaiting_input:
                      $ref: '#/components/schemas/TaskAwaitingInputWithActivity'
                    errored:
                      $ref: '#/components/schemas/TaskErroredWithActivity'
                    processing:
                      $ref: '#/components/schemas/TaskProcessingWithActivity'
                    queued:
                      $ref: '#/components/schemas/TaskQueuedWithActivity'
                  propertyName: status
                oneOf:
                  - $ref: '#/components/schemas/TaskQueuedWithActivity'
                  - $ref: '#/components/schemas/TaskProcessingWithActivity'
                  - $ref: '#/components/schemas/TaskAwaitingInputWithActivity'
                  - $ref: '#/components/schemas/TaskErroredWithActivity'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
components:
  schemas:
    TaskAwaitingInputWithActivity:
      additionalProperties: false
      properties:
        activity_items:
          items:
            $ref: '#/components/schemas/TaskActivityItem'
          type: array
        agent_segments:
          items:
            $ref: '#/components/schemas/TaskAgentSegment'
          type: array
        agent_type:
          enum:
            - codex
            - claude-code
            - opencode
            - cursor
          type: string
        archived_at:
          minLength: 1
          type:
            - string
            - 'null'
        auto_fix_ci:
          type: boolean
        auto_fix_pr_comments:
          type: boolean
        auto_rebase:
          type: boolean
        awaiting_input:
          $ref: '#/components/schemas/TaskAwaitingInputPayload'
        base_branch:
          minLength: 1
          pattern: \S
          type: string
        campaign:
          anyOf:
            - $ref: '#/components/schemas/TaskCampaignSummary'
            - type: 'null'
        created_at:
          minLength: 1
          type: string
        creator_reauth_required:
          type: boolean
        display_status:
          enum:
            - running
            - awaiting_input
            - awaiting_ci
            - merged
            - unmerged
            - errored
            - archived
          type: string
        feed_updated_at:
          minLength: 1
          type: string
        github_status:
          enum:
            - merged
            - unmerged
            - awaiting_ci
          type:
            - string
            - 'null'
        hardware:
          $ref: '#/components/schemas/HardwareConfig'
        head_branch:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        interaction_mode:
          enum:
            - default
            - plan
          type: string
        last_error:
          type:
            - string
            - 'null'
        latest_sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        latest_status_message:
          type:
            - string
            - 'null'
        latest_status_source:
          type:
            - string
            - 'null'
        model:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        parent_task_id:
          format: uuid
          type:
            - string
            - 'null'
        pinned_at:
          minLength: 1
          type:
            - string
            - 'null'
        post_pr_demo_video:
          type: boolean
        post_pr_screenshots:
          type: boolean
        pr_review_mode:
          enum:
            - review_only
            - apply_fixes
          type:
            - string
            - 'null'
        pr_review_summary:
          anyOf:
            - $ref: '#/components/schemas/TaskPRReviewSummary'
            - type: 'null'
        primary_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskPullRequest'
            - type: 'null'
        project_id:
          minLength: 1
          type: string
        pull_requests:
          items:
            $ref: '#/components/schemas/TaskPullRequest'
          type: array
        reasoning_effort:
          enum:
            - ultra
            - max
            - xhigh
            - high
            - medium
            - low
            - ultrathink
            - ultracode
            - none
          type:
            - string
            - 'null'
        review_subject_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskReviewSubjectPullRequest'
            - type: 'null'
        run_context:
          anyOf:
            - $ref: '#/components/schemas/TaskRunContext'
            - type: 'null'
        runtime_intervals:
          items:
            $ref: '#/components/schemas/TaskRuntimeInterval'
          type: array
        runtime_timing:
          $ref: '#/components/schemas/TaskRuntimeTiming'
        slash_commands:
          items:
            $ref: '#/components/schemas/TaskSlashCommand'
          type:
            - array
            - 'null'
        source:
          $ref: '#/components/schemas/TaskSource'
        source_metadata:
          additionalProperties: true
          properties: {}
          type:
            - object
            - 'null'
        status:
          enum:
            - awaiting_input
          type: string
        usage:
          $ref: '#/components/schemas/TaskUsage'
        user_id:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - id
        - project_id
        - parent_task_id
        - user_id
        - name
        - agent_type
        - model
        - interaction_mode
        - auto_fix_ci
        - auto_fix_pr_comments
        - auto_rebase
        - post_pr_screenshots
        - post_pr_demo_video
        - status
        - display_status
        - github_status
        - pull_requests
        - primary_pull_request
        - review_subject_pull_request
        - pr_review_summary
        - campaign
        - creator_reauth_required
        - usage
        - runtime_timing
        - hardware
        - source
        - created_at
        - feed_updated_at
        - base_branch
        - run_context
        - awaiting_input
        - activity_items
      type: object
    TaskErroredWithActivity:
      additionalProperties: false
      properties:
        activity_items:
          items:
            $ref: '#/components/schemas/TaskActivityItem'
          type: array
        agent_segments:
          items:
            $ref: '#/components/schemas/TaskAgentSegment'
          type: array
        agent_type:
          enum:
            - codex
            - claude-code
            - opencode
            - cursor
          type: string
        archived_at:
          minLength: 1
          type:
            - string
            - 'null'
        auto_fix_ci:
          type: boolean
        auto_fix_pr_comments:
          type: boolean
        auto_rebase:
          type: boolean
        base_branch:
          minLength: 1
          pattern: \S
          type: string
        campaign:
          anyOf:
            - $ref: '#/components/schemas/TaskCampaignSummary'
            - type: 'null'
        completed_at:
          minLength: 1
          type: string
        created_at:
          minLength: 1
          type: string
        creator_reauth_required:
          type: boolean
        display_status:
          enum:
            - running
            - awaiting_input
            - awaiting_ci
            - merged
            - unmerged
            - errored
            - archived
          type: string
        error:
          minLength: 1
          type: string
        feed_updated_at:
          minLength: 1
          type: string
        github_status:
          enum:
            - merged
            - unmerged
            - awaiting_ci
          type:
            - string
            - 'null'
        hardware:
          $ref: '#/components/schemas/HardwareConfig'
        head_branch:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        interaction_mode:
          enum:
            - default
            - plan
          type: string
        last_error:
          type:
            - string
            - 'null'
        latest_sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        latest_status_message:
          type:
            - string
            - 'null'
        latest_status_source:
          type:
            - string
            - 'null'
        model:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        parent_task_id:
          format: uuid
          type:
            - string
            - 'null'
        pinned_at:
          minLength: 1
          type:
            - string
            - 'null'
        post_pr_demo_video:
          type: boolean
        post_pr_screenshots:
          type: boolean
        pr_review_mode:
          enum:
            - review_only
            - apply_fixes
          type:
            - string
            - 'null'
        pr_review_summary:
          anyOf:
            - $ref: '#/components/schemas/TaskPRReviewSummary'
            - type: 'null'
        primary_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskPullRequest'
            - type: 'null'
        project_id:
          minLength: 1
          type: string
        pull_requests:
          items:
            $ref: '#/components/schemas/TaskPullRequest'
          type: array
        reasoning_effort:
          enum:
            - ultra
            - max
            - xhigh
            - high
            - medium
            - low
            - ultrathink
            - ultracode
            - none
          type:
            - string
            - 'null'
        review_subject_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskReviewSubjectPullRequest'
            - type: 'null'
        run_context:
          anyOf:
            - $ref: '#/components/schemas/TaskRunContext'
            - type: 'null'
        runtime_intervals:
          items:
            $ref: '#/components/schemas/TaskRuntimeInterval'
          type: array
        runtime_timing:
          $ref: '#/components/schemas/TaskRuntimeTiming'
        slash_commands:
          items:
            $ref: '#/components/schemas/TaskSlashCommand'
          type:
            - array
            - 'null'
        source:
          $ref: '#/components/schemas/TaskSource'
        source_metadata:
          additionalProperties: true
          properties: {}
          type:
            - object
            - 'null'
        status:
          enum:
            - errored
          type: string
        usage:
          $ref: '#/components/schemas/TaskUsage'
        user_id:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - id
        - project_id
        - parent_task_id
        - user_id
        - name
        - agent_type
        - model
        - interaction_mode
        - auto_fix_ci
        - auto_fix_pr_comments
        - auto_rebase
        - post_pr_screenshots
        - post_pr_demo_video
        - status
        - display_status
        - github_status
        - pull_requests
        - primary_pull_request
        - review_subject_pull_request
        - pr_review_summary
        - campaign
        - creator_reauth_required
        - usage
        - runtime_timing
        - hardware
        - source
        - created_at
        - feed_updated_at
        - base_branch
        - run_context
        - error
        - completed_at
        - activity_items
      type: object
    TaskProcessingWithActivity:
      additionalProperties: false
      properties:
        activity_items:
          items:
            $ref: '#/components/schemas/TaskActivityItem'
          type: array
        agent_segments:
          items:
            $ref: '#/components/schemas/TaskAgentSegment'
          type: array
        agent_type:
          enum:
            - codex
            - claude-code
            - opencode
            - cursor
          type: string
        archived_at:
          minLength: 1
          type:
            - string
            - 'null'
        auto_fix_ci:
          type: boolean
        auto_fix_pr_comments:
          type: boolean
        auto_rebase:
          type: boolean
        base_branch:
          minLength: 1
          pattern: \S
          type: string
        campaign:
          anyOf:
            - $ref: '#/components/schemas/TaskCampaignSummary'
            - type: 'null'
        created_at:
          minLength: 1
          type: string
        creator_reauth_required:
          type: boolean
        display_status:
          enum:
            - running
            - awaiting_input
            - awaiting_ci
            - merged
            - unmerged
            - errored
            - archived
          type: string
        feed_updated_at:
          minLength: 1
          type: string
        github_status:
          enum:
            - merged
            - unmerged
            - awaiting_ci
          type:
            - string
            - 'null'
        hardware:
          $ref: '#/components/schemas/HardwareConfig'
        head_branch:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        interaction_mode:
          enum:
            - default
            - plan
          type: string
        last_error:
          type:
            - string
            - 'null'
        latest_sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        latest_status_message:
          type:
            - string
            - 'null'
        latest_status_source:
          type:
            - string
            - 'null'
        model:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        parent_task_id:
          format: uuid
          type:
            - string
            - 'null'
        pinned_at:
          minLength: 1
          type:
            - string
            - 'null'
        post_pr_demo_video:
          type: boolean
        post_pr_screenshots:
          type: boolean
        pr_review_mode:
          enum:
            - review_only
            - apply_fixes
          type:
            - string
            - 'null'
        pr_review_summary:
          anyOf:
            - $ref: '#/components/schemas/TaskPRReviewSummary'
            - type: 'null'
        primary_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskPullRequest'
            - type: 'null'
        project_id:
          minLength: 1
          type: string
        pull_requests:
          items:
            $ref: '#/components/schemas/TaskPullRequest'
          type: array
        reasoning_effort:
          enum:
            - ultra
            - max
            - xhigh
            - high
            - medium
            - low
            - ultrathink
            - ultracode
            - none
          type:
            - string
            - 'null'
        review_subject_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskReviewSubjectPullRequest'
            - type: 'null'
        run_context:
          $ref: '#/components/schemas/TaskRunContext'
        runtime_intervals:
          items:
            $ref: '#/components/schemas/TaskRuntimeInterval'
          type: array
        runtime_timing:
          $ref: '#/components/schemas/TaskRuntimeTiming'
        slash_commands:
          items:
            $ref: '#/components/schemas/TaskSlashCommand'
          type:
            - array
            - 'null'
        source:
          $ref: '#/components/schemas/TaskSource'
        source_metadata:
          additionalProperties: true
          properties: {}
          type:
            - object
            - 'null'
        status:
          enum:
            - processing
          type: string
        usage:
          $ref: '#/components/schemas/TaskUsage'
        user_id:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - id
        - project_id
        - parent_task_id
        - user_id
        - name
        - agent_type
        - model
        - interaction_mode
        - auto_fix_ci
        - auto_fix_pr_comments
        - auto_rebase
        - post_pr_screenshots
        - post_pr_demo_video
        - status
        - display_status
        - github_status
        - pull_requests
        - primary_pull_request
        - review_subject_pull_request
        - pr_review_summary
        - campaign
        - creator_reauth_required
        - usage
        - runtime_timing
        - hardware
        - source
        - created_at
        - feed_updated_at
        - base_branch
        - run_context
        - activity_items
      type: object
    TaskQueuedWithActivity:
      additionalProperties: false
      properties:
        activity_items:
          items:
            $ref: '#/components/schemas/TaskActivityItem'
          type: array
        agent_segments:
          items:
            $ref: '#/components/schemas/TaskAgentSegment'
          type: array
        agent_type:
          enum:
            - codex
            - claude-code
            - opencode
            - cursor
          type: string
        archived_at:
          minLength: 1
          type:
            - string
            - 'null'
        auto_fix_ci:
          type: boolean
        auto_fix_pr_comments:
          type: boolean
        auto_rebase:
          type: boolean
        base_branch:
          minLength: 1
          pattern: \S
          type: string
        campaign:
          anyOf:
            - $ref: '#/components/schemas/TaskCampaignSummary'
            - type: 'null'
        created_at:
          minLength: 1
          type: string
        creator_reauth_required:
          type: boolean
        display_status:
          enum:
            - running
            - awaiting_input
            - awaiting_ci
            - merged
            - unmerged
            - errored
            - archived
          type: string
        feed_updated_at:
          minLength: 1
          type: string
        github_status:
          enum:
            - merged
            - unmerged
            - awaiting_ci
          type:
            - string
            - 'null'
        hardware:
          $ref: '#/components/schemas/HardwareConfig'
        head_branch:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        interaction_mode:
          enum:
            - default
            - plan
          type: string
        last_error:
          type:
            - string
            - 'null'
        latest_sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        latest_status_message:
          type:
            - string
            - 'null'
        latest_status_source:
          type:
            - string
            - 'null'
        model:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        parent_task_id:
          format: uuid
          type:
            - string
            - 'null'
        pinned_at:
          minLength: 1
          type:
            - string
            - 'null'
        post_pr_demo_video:
          type: boolean
        post_pr_screenshots:
          type: boolean
        pr_review_mode:
          enum:
            - review_only
            - apply_fixes
          type:
            - string
            - 'null'
        pr_review_summary:
          anyOf:
            - $ref: '#/components/schemas/TaskPRReviewSummary'
            - type: 'null'
        primary_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskPullRequest'
            - type: 'null'
        project_id:
          minLength: 1
          type: string
        pull_requests:
          items:
            $ref: '#/components/schemas/TaskPullRequest'
          type: array
        reasoning_effort:
          enum:
            - ultra
            - max
            - xhigh
            - high
            - medium
            - low
            - ultrathink
            - ultracode
            - none
          type:
            - string
            - 'null'
        review_subject_pull_request:
          anyOf:
            - $ref: '#/components/schemas/TaskReviewSubjectPullRequest'
            - type: 'null'
        run_context:
          anyOf:
            - $ref: '#/components/schemas/TaskRunContext'
            - type: 'null'
        runtime_intervals:
          items:
            $ref: '#/components/schemas/TaskRuntimeInterval'
          type: array
        runtime_timing:
          $ref: '#/components/schemas/TaskRuntimeTiming'
        slash_commands:
          items:
            $ref: '#/components/schemas/TaskSlashCommand'
          type:
            - array
            - 'null'
        source:
          $ref: '#/components/schemas/TaskSource'
        source_metadata:
          additionalProperties: true
          properties: {}
          type:
            - object
            - 'null'
        status:
          enum:
            - queued
          type: string
        usage:
          $ref: '#/components/schemas/TaskUsage'
        user_id:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - id
        - project_id
        - parent_task_id
        - user_id
        - name
        - agent_type
        - model
        - interaction_mode
        - auto_fix_ci
        - auto_fix_pr_comments
        - auto_rebase
        - post_pr_screenshots
        - post_pr_demo_video
        - status
        - display_status
        - github_status
        - pull_requests
        - primary_pull_request
        - review_subject_pull_request
        - pr_review_summary
        - campaign
        - creator_reauth_required
        - usage
        - runtime_timing
        - hardware
        - source
        - created_at
        - feed_updated_at
        - base_branch
        - run_context
        - activity_items
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        code:
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    TaskActivityItem:
      discriminator:
        mapping:
          ci_failed:
            $ref: '#/components/schemas/TaskActivityCIFailed'
          ci_passed:
            $ref: '#/components/schemas/TaskActivityCIPassed'
          done:
            $ref: '#/components/schemas/TaskActivityDone'
          error:
            $ref: '#/components/schemas/TaskActivityError'
          question:
            $ref: '#/components/schemas/TaskActivityQuestion'
          start_task:
            $ref: '#/components/schemas/TaskActivityStartTask'
          workspace_lifecycle:
            $ref: '#/components/schemas/TaskActivityWorkspaceLifecycle'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/TaskActivityDone'
        - $ref: '#/components/schemas/TaskActivityError'
        - $ref: '#/components/schemas/TaskActivityQuestion'
        - $ref: '#/components/schemas/TaskActivityStartTask'
        - $ref: '#/components/schemas/TaskActivityWorkspaceLifecycle'
        - $ref: '#/components/schemas/TaskActivityCIPassed'
        - $ref: '#/components/schemas/TaskActivityCIFailed'
    TaskAgentSegment:
      additionalProperties: false
      properties:
        end_reason:
          enum:
            - completed
            - awaiting_input
            - errored
            - interrupted
          type:
            - string
            - 'null'
        ended_at:
          minLength: 1
          type:
            - string
            - 'null'
        id:
          minLength: 1
          type: string
        started_at:
          minLength: 1
          type: string
        task_id:
          minLength: 1
          type: string
        tokens_in:
          format: int64
          minimum: 0
          type: integer
        tokens_out:
          format: int64
          minimum: 0
          type: integer
      required:
        - id
        - task_id
        - started_at
        - tokens_in
        - tokens_out
      type: object
    TaskAwaitingInputPayload:
      discriminator:
        mapping:
          message:
            $ref: '#/components/schemas/TaskAwaitingInputMessage'
          plan:
            $ref: '#/components/schemas/TaskAwaitingInputPlan'
          questions:
            $ref: '#/components/schemas/TaskAwaitingInputQuestions'
        propertyName: kind
      oneOf:
        - $ref: '#/components/schemas/TaskAwaitingInputMessage'
        - $ref: '#/components/schemas/TaskAwaitingInputQuestions'
        - $ref: '#/components/schemas/TaskAwaitingInputPlan'
    TaskCampaignSummary:
      additionalProperties: false
      properties:
        active_descendants:
          format: int64
          minimum: 0
          type: integer
        attention:
          enum:
            - error
            - waiting
          type:
            - string
            - 'null'
        descendants_merged:
          format: int64
          minimum: 0
          type: integer
        descendants_total:
          format: int64
          minimum: 1
          type: integer
      required:
        - descendants_total
        - descendants_merged
        - active_descendants
        - attention
      type: object
    HardwareConfig:
      additionalProperties: false
      properties:
        cpu_kind:
          enum:
            - shared
            - performance
          type: string
        cpus:
          format: int64
          maximum: 16
          minimum: 1
          type: integer
        gpu_kind:
          enum:
            - a10
            - l40s
            - a100-40gb
            - a100-80gb
          type:
            - string
            - 'null'
        memory_mb:
          format: int64
          maximum: 32768
          minimum: 256
          type: integer
        volume_size_gb:
          format: int64
          maximum: 500
          minimum: 1
          type: integer
      required:
        - cpu_kind
        - cpus
        - memory_mb
        - volume_size_gb
        - gpu_kind
      type: object
    TaskPRReviewSummary:
      additionalProperties: false
      properties:
        comment_count:
          format: int64
          minimum: 0
          type:
            - integer
            - 'null'
        pull_request_id:
          format: uuid
          type: string
        review_task_id:
          format: uuid
          type: string
        run_count:
          format: int64
          minimum: 1
          type: integer
        run_status:
          $ref: '#/components/schemas/ReviewRunStatus'
        verdict:
          $ref: '#/components/schemas/PRReviewPostedReviewEvent'
      required:
        - review_task_id
        - pull_request_id
        - run_status
        - comment_count
        - run_count
      type: object
    TaskPullRequest:
      additionalProperties: false
      properties:
        additions:
          format: int64
          minimum: 0
          type: integer
        branch_name:
          minLength: 1
          type: string
        checks_failed:
          format: int64
          minimum: 0
          type: integer
        checks_passed:
          format: int64
          minimum: 0
          type: integer
        checks_total:
          format: int64
          minimum: 0
          type: integer
        ci_status:
          enum:
            - pending
            - passed
            - failed
          type: string
        commits:
          format: int64
          minimum: 0
          type: integer
        deletions:
          format: int64
          minimum: 0
          type: integer
        html_url:
          minLength: 1
          type: string
        lines_changed:
          format: int64
          minimum: 0
          type: integer
        merged_at:
          minLength: 1
          type: string
        pr_number:
          format: int64
          minimum: 1
          type: integer
        pull_request_id:
          format: uuid
          type: string
        state:
          enum:
            - open
            - closed
            - merged
          type: string
        title:
          type: string
      required:
        - pull_request_id
        - pr_number
        - html_url
        - title
        - checks_passed
        - checks_failed
        - checks_total
        - commits
        - lines_changed
        - additions
        - deletions
      type: object
    TaskReviewSubjectPullRequest:
      additionalProperties: false
      properties:
        additions:
          format: int64
          minimum: 0
          type: integer
        branch_name:
          minLength: 1
          type: string
        checks_failed:
          format: int64
          minimum: 0
          type: integer
        checks_passed:
          format: int64
          minimum: 0
          type: integer
        checks_total:
          format: int64
          minimum: 0
          type: integer
        ci_status:
          enum:
            - pending
            - passed
            - failed
          type: string
        commits:
          format: int64
          minimum: 0
          type: integer
        deletions:
          format: int64
          minimum: 0
          type: integer
        html_url:
          minLength: 1
          type: string
        lines_changed:
          format: int64
          minimum: 0
          type: integer
        merged_at:
          minLength: 1
          type: string
        origin_task_id:
          format: uuid
          type: string
        pr_number:
          format: int64
          minimum: 1
          type: integer
        pull_request_id:
          format: uuid
          type: string
        review_check_conclusion:
          enum:
            - success
            - failure
            - cancelled
            - neutral
          type: string
        review_trigger:
          enum:
            - automatic
            - comment_command
            - manual
          type: string
        state:
          enum:
            - open
            - closed
            - merged
          type: string
        title:
          type: string
      required:
        - pull_request_id
        - pr_number
        - html_url
        - title
        - checks_passed
        - checks_failed
        - checks_total
        - commits
        - lines_changed
        - additions
        - deletions
        - review_trigger
      type: object
    TaskRunContext:
      additionalProperties: false
      properties:
        started_at:
          minLength: 1
          type: string
        workspace_id:
          minLength: 1
          type: string
      required:
        - workspace_id
        - started_at
      type: object
    TaskRuntimeInterval:
      additionalProperties: false
      properties:
        cpu_kind:
          enum:
            - shared
            - performance
          type:
            - string
            - 'null'
        cpus:
          format: int64
          minimum: 0
          type:
            - integer
            - 'null'
        end_reason:
          enum:
            - halted
            - terminated
          type:
            - string
            - 'null'
        ended_at:
          minLength: 1
          type:
            - string
            - 'null'
        gpu_kind:
          enum:
            - a10
            - l40s
            - a100-40gb
            - a100-80gb
          type:
            - string
            - 'null'
        id:
          minLength: 1
          type: string
        machine_id:
          minLength: 1
          type: string
        memory_mb:
          format: int64
          minimum: 0
          type:
            - integer
            - 'null'
        started_at:
          minLength: 1
          type: string
        task_id:
          minLength: 1
          type: string
        volume_size_gb:
          format: int64
          minimum: 0
          type:
            - integer
            - 'null'
        workspace_id:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - id
        - task_id
        - machine_id
        - started_at
      type: object
    TaskRuntimeTiming:
      discriminator:
        mapping:
          active:
            $ref: '#/components/schemas/TaskRuntimeTimingActive'
          inactive:
            $ref: '#/components/schemas/TaskRuntimeTimingInactive'
        propertyName: state
      oneOf:
        - $ref: '#/components/schemas/TaskRuntimeTimingInactive'
        - $ref: '#/components/schemas/TaskRuntimeTimingActive'
    TaskSlashCommand:
      additionalProperties: true
      properties:
        description:
          type: string
        input:
          additionalProperties: true
          properties:
            hint:
              type: string
          required:
            - hint
          type: object
        name:
          type: string
      required:
        - name
        - description
      type: object
    TaskSource:
      enum:
        - manual
        - web
        - mobile
        - cli
        - ci
        - sentry
        - linear
        - slack
        - automation
        - pr_review
        - teleport
        - agent
      type: string
    TaskUsage:
      additionalProperties: false
      properties:
        tokens_in:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        tokens_out:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        vm_uptime_seconds:
          format: int64
          minimum: 0
          type: integer
      required:
        - tokens_in
        - tokens_out
        - vm_uptime_seconds
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    TaskActivityCIFailed:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/CIFailedEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - ci_failed
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityCIPassed:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/CIPassedEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - ci_passed
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityDone:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/DoneEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - done
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityError:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/ErrorEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - error
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityQuestion:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/QuestionEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - question
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityStartTask:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          additionalProperties: true
          properties: {}
          type:
            - object
            - 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - start_task
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskActivityWorkspaceLifecycle:
      additionalProperties: false
      properties:
        created_at:
          minLength: 1
          type: string
        data:
          anyOf:
            - $ref: '#/components/schemas/WorkspaceLifecycleEventData'
            - type: 'null'
        event_id:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        sequence:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        task_id:
          minLength: 1
          type: string
        type:
          enum:
            - workspace_lifecycle
          type: string
      required:
        - id
        - task_id
        - created_at
        - sequence
        - type
        - data
      type: object
    TaskAwaitingInputMessage:
      additionalProperties: false
      properties:
        kind:
          enum:
            - message
          type: string
      required:
        - kind
      type: object
    TaskAwaitingInputPlan:
      additionalProperties: false
      properties:
        input:
          $ref: '#/components/schemas/ProposePlanToolInput'
        kind:
          enum:
            - plan
          type: string
        tool_id:
          minLength: 1
          type: string
      required:
        - kind
        - tool_id
        - input
      type: object
    TaskAwaitingInputQuestions:
      additionalProperties: false
      properties:
        input:
          $ref: '#/components/schemas/AskUserToolInput'
        kind:
          enum:
            - questions
          type: string
        tool_id:
          minLength: 1
          type: string
      required:
        - kind
        - tool_id
        - input
      type: object
    ReviewRunStatus:
      enum:
        - reviewing
        - awaiting_input
        - completed
        - failed
        - cancelled
        - superseded
        - archived
      type: string
    PRReviewPostedReviewEvent:
      enum:
        - COMMENT
        - APPROVE
        - REQUEST_CHANGES
      type: string
    TaskRuntimeTimingActive:
      additionalProperties: false
      properties:
        active_started_at:
          minLength: 1
          type: string
        state:
          enum:
            - active
          type: string
      required:
        - state
        - active_started_at
      type: object
    TaskRuntimeTimingInactive:
      additionalProperties: false
      properties:
        state:
          enum:
            - inactive
          type: string
      required:
        - state
      type: object
    CIFailedEventData:
      additionalProperties: false
      properties:
        check_suite_id:
          format: int64
          minimum: 0
          type: integer
        conclusion:
          enum:
            - failure
          type: string
        failed_checks:
          items:
            additionalProperties: false
            properties:
              conclusion:
                minLength: 1
                type: string
              id:
                format: int64
                minimum: 0
                type: integer
              name:
                minLength: 1
                type: string
            required:
              - name
              - id
              - conclusion
            type: object
          type: array
        head_sha:
          minLength: 1
          type: string
        repo:
          minLength: 1
          type: string
      required:
        - head_sha
        - conclusion
        - repo
        - failed_checks
      type: object
    CIPassedEventData:
      additionalProperties: false
      properties:
        check_suite_id:
          format: int64
          minimum: 0
          type: integer
        conclusion:
          enum:
            - success
          type: string
        head_sha:
          minLength: 1
          type: string
        repo:
          minLength: 1
          type: string
      required:
        - check_suite_id
        - head_sha
        - conclusion
        - repo
      type: object
    DoneEventData:
      additionalProperties: false
      properties:
        message_id:
          minLength: 1
          type: string
        usage:
          $ref: '#/components/schemas/UsageStats'
      required:
        - message_id
      type: object
    ErrorEventData:
      additionalProperties: false
      properties:
        failure_kind:
          enum:
            - auth_expired
            - out_of_credits
            - provider_overloaded
            - subscription_disabled
            - setup_command_failed
            - checkpoint_export_failed
            - provider_error
          type: string
        message:
          minLength: 1
          type: string
        usage:
          $ref: '#/components/schemas/UsageStats'
      required:
        - message
      type: object
    QuestionEventData:
      discriminator:
        mapping:
          ask_user:
            $ref: '#/components/schemas/QuestionEventDataAskUser'
          propose_plan:
            $ref: '#/components/schemas/QuestionEventDataProposePlan'
          stop_task:
            $ref: '#/components/schemas/QuestionEventDataStopTask'
        propertyName: toolName
      oneOf:
        - $ref: '#/components/schemas/QuestionEventDataAskUser'
        - $ref: '#/components/schemas/QuestionEventDataProposePlan'
        - $ref: '#/components/schemas/QuestionEventDataStopTask'
    WorkspaceLifecycleEventData:
      oneOf:
        - $ref: '#/components/schemas/WorkspaceLifecycleProgressEventData'
        - $ref: '#/components/schemas/WorkspaceLifecycleSingleWakeEventData'
        - $ref: '#/components/schemas/WorkspaceLifecycleGitHubBatchWakeEventData'
        - $ref: '#/components/schemas/WorkspaceLifecycleSingleWakeReadyEventData'
        - $ref: '#/components/schemas/WorkspaceLifecycleGitHubBatchWakeReadyEventData'
    ProposePlanToolInput:
      additionalProperties: true
      properties:
        plan:
          type: string
        summary:
          type: string
      required:
        - summary
        - plan
      type: object
    AskUserToolInput:
      additionalProperties: true
      properties:
        questions:
          items:
            $ref: '#/components/schemas/AskUserQuestion'
          minItems: 1
          type: array
      required:
        - questions
      type: object
    UsageStats:
      additionalProperties: false
      properties:
        cachedInputTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        cachedWriteTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        cost:
          format: double
          minimum: 0
          type: number
        inputTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        metadata:
          additionalProperties: true
          properties: {}
          type: object
        outputTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        provider:
          enum:
            - codex
            - claude-code
            - opencode
            - cursor
          type: string
        reasoningOutputTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
        totalTokens:
          format: int64
          maximum: 9007199254740991
          minimum: 0
          type: integer
      required:
        - inputTokens
        - outputTokens
      type: object
    QuestionEventDataAskUser:
      additionalProperties: false
      properties:
        input:
          $ref: '#/components/schemas/AskUserToolInput'
        toolId:
          minLength: 1
          type: string
        toolName:
          enum:
            - ask_user
          type: string
        usage:
          $ref: '#/components/schemas/UsageStats'
      required:
        - toolId
        - toolName
        - input
      type: object
    QuestionEventDataProposePlan:
      additionalProperties: false
      properties:
        input:
          $ref: '#/components/schemas/ProposePlanToolInput'
        toolId:
          minLength: 1
          type: string
        toolName:
          enum:
            - propose_plan
          type: string
        usage:
          $ref: '#/components/schemas/UsageStats'
      required:
        - toolId
        - toolName
        - input
      type: object
    QuestionEventDataStopTask:
      additionalProperties: false
      properties:
        input:
          $ref: '#/components/schemas/StopTaskQuestionInput'
        toolId:
          minLength: 1
          type: string
        toolName:
          enum:
            - stop_task
          type: string
        usage:
          $ref: '#/components/schemas/UsageStats'
      required:
        - toolId
        - toolName
        - input
      type: object
    WorkspaceLifecycleProgressEventData:
      additionalProperties: false
      properties:
        message:
          minLength: 1
          pattern: \S
          type: string
        phase:
          $ref: '#/components/schemas/WorkspaceLifecycleNonReadyPhase'
      required:
        - phase
        - message
      type: object
    WorkspaceLifecycleSingleWakeEventData:
      additionalProperties: false
      properties:
        message:
          minLength: 1
          pattern: \S
          type: string
        phase:
          $ref: '#/components/schemas/WorkspaceLifecycleNonReadyPhase'
        source_ref:
          pattern: >-
            ^[hH][tT][tT][pP][sS]?://[A-Za-z0-9]([A-Za-z0-9.-]*[A-Za-z0-9])?(:([0-9]{1,4}|[0-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?([/?#]([A-Za-z0-9._~:/?#@!$&'()*+,;=-]|%[0-9A-Fa-f]{2})*)?$
          type: string
        woken_by:
          enum:
            - user_message
            - pr_review_comment
            - pr_comment
            - ci_failure
            - auto_rebase
            - initial_run
            - pr_synchronize
            - manual_pr_review
          type: string
      required:
        - phase
        - message
        - woken_by
      type: object
    WorkspaceLifecycleGitHubBatchWakeEventData:
      additionalProperties: false
      properties:
        message:
          minLength: 1
          pattern: \S
          type: string
        phase:
          $ref: '#/components/schemas/WorkspaceLifecycleNonReadyPhase'
        source_ref:
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          type: string
        sources:
          items:
            $ref: '#/components/schemas/WorkspaceWakeSource'
          minItems: 2
          type: array
        woken_by:
          enum:
            - github_batch
          type: string
      required:
        - phase
        - message
        - woken_by
        - source_ref
        - sources
      type: object
    WorkspaceLifecycleSingleWakeReadyEventData:
      additionalProperties: false
      properties:
        dispatch_message_id:
          minLength: 1
          pattern: ^\S(?:[\s\S]*\S)?$
          type: string
        message:
          minLength: 1
          pattern: \S
          type: string
        phase:
          enum:
            - ready
          type: string
        source_ref:
          pattern: >-
            ^[hH][tT][tT][pP][sS]?://[A-Za-z0-9]([A-Za-z0-9.-]*[A-Za-z0-9])?(:([0-9]{1,4}|[0-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?([/?#]([A-Za-z0-9._~:/?#@!$&'()*+,;=-]|%[0-9A-Fa-f]{2})*)?$
          type: string
        woken_by:
          enum:
            - user_message
            - pr_review_comment
            - pr_comment
            - ci_failure
            - auto_rebase
            - initial_run
            - pr_synchronize
            - manual_pr_review
          type: string
      required:
        - phase
        - message
        - woken_by
      type: object
    WorkspaceLifecycleGitHubBatchWakeReadyEventData:
      additionalProperties: false
      properties:
        dispatch_message_id:
          minLength: 1
          pattern: ^\S(?:[\s\S]*\S)?$
          type: string
        message:
          minLength: 1
          pattern: \S
          type: string
        phase:
          enum:
            - ready
          type: string
        source_ref:
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          type: string
        sources:
          items:
            $ref: '#/components/schemas/WorkspaceWakeSource'
          minItems: 2
          type: array
        woken_by:
          enum:
            - github_batch
          type: string
      required:
        - phase
        - message
        - woken_by
        - source_ref
        - sources
      type: object
    AskUserQuestion:
      additionalProperties: false
      properties:
        header:
          type: string
        id:
          type: string
        multiSelect:
          type:
            - boolean
            - 'null'
        options:
          items:
            $ref: '#/components/schemas/AskUserQuestionOption'
          type: array
        question:
          minLength: 1
          pattern: \S
          type: string
      required:
        - question
        - options
      type: object
    StopTaskQuestionInput:
      additionalProperties: false
      properties:
        discardQueuedMessages:
          type: boolean
        initiator:
          $ref: '#/components/schemas/StopInitiator'
      required:
        - initiator
        - discardQueuedMessages
      type: object
    WorkspaceLifecycleNonReadyPhase:
      enum:
        - starting
        - provisioning_machine
        - booting_workspace
        - preparing_workspace
        - starting_agent
        - suspending
        - suspended
        - waiting_for_suspend
        - resuming
        - resumed
        - recovering
        - recovered
      type: string
    WorkspaceWakeSource:
      additionalProperties: false
      properties:
        kind:
          enum:
            - user_message
            - pr_review_comment
            - pr_comment
            - ci_failure
            - auto_rebase
            - initial_run
            - pr_synchronize
            - manual_pr_review
          type: string
        ref:
          pattern: >-
            ^[hH][tT][tT][pP][sS]?://[A-Za-z0-9]([A-Za-z0-9.-]*[A-Za-z0-9])?(:([0-9]{1,4}|[0-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?([/?#]([A-Za-z0-9._~:/?#@!$&'()*+,;=-]|%[0-9A-Fa-f]{2})*)?$
          type: string
      required:
        - kind
      type: object
    AskUserQuestionOption:
      additionalProperties: false
      properties:
        description:
          type: string
        label:
          minLength: 1
          pattern: \S
          type: string
        preview:
          type: string
      required:
        - label
      type: object
    StopInitiator:
      discriminator:
        mapping:
          agent:
            $ref: '#/components/schemas/AgentStopInitiator'
          integration:
            $ref: '#/components/schemas/IntegrationStopInitiator'
          system:
            $ref: '#/components/schemas/SystemStopInitiator'
          user:
            $ref: '#/components/schemas/UserStopInitiator'
        propertyName: kind
      oneOf:
        - $ref: '#/components/schemas/UserStopInitiator'
        - $ref: '#/components/schemas/IntegrationStopInitiator'
        - $ref: '#/components/schemas/SystemStopInitiator'
        - $ref: '#/components/schemas/AgentStopInitiator'
    AgentStopInitiator:
      additionalProperties: false
      properties:
        kind:
          enum:
            - agent
          type: string
        parentTaskId:
          format: uuid
          type: string
        parentTaskName:
          minLength: 1
          type: string
      required:
        - kind
        - parentTaskId
        - parentTaskName
      type: object
    IntegrationStopInitiator:
      additionalProperties: false
      properties:
        externalActorId:
          minLength: 1
          type: string
        kind:
          enum:
            - integration
          type: string
        provider:
          enum:
            - linear
          type: string
      required:
        - kind
        - provider
        - externalActorId
      type: object
    SystemStopInitiator:
      additionalProperties: false
      properties:
        kind:
          enum:
            - system
          type: string
        reason:
          enum:
            - history_rollback
            - runtime_billing_failure
            - service_shutdown
          type: string
      required:
        - kind
        - reason
      type: object
    UserStopInitiator:
      additionalProperties: false
      properties:
        kind:
          enum:
            - user
          type: string
        source:
          enum:
            - aether
            - slack
          type: string
        userId:
          format: uuid
          type: string
      required:
        - kind
        - userId
        - source
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````