Schema for the `TaskShellInfo` type.
| 15747 | # Experimental: this type is part of an experimental API and may change or be removed. |
| 15748 | @dataclass |
| 15749 | class TaskShellInfo: |
| 15750 | """Schema for the `TaskShellInfo` type.""" |
| 15751 | |
| 15752 | attachment_mode: TaskShellInfoAttachmentMode |
| 15753 | """Whether the shell runs inside a managed PTY session or as an independent background |
| 15754 | process |
| 15755 | """ |
| 15756 | command: str |
| 15757 | """Command being executed""" |
| 15758 | |
| 15759 | description: str |
| 15760 | """Short description of the task""" |
| 15761 | |
| 15762 | id: str |
| 15763 | """Unique task identifier""" |
| 15764 | |
| 15765 | started_at: datetime |
| 15766 | """ISO 8601 timestamp when the task was started""" |
| 15767 | |
| 15768 | status: TaskStatus |
| 15769 | """Current lifecycle status of the task""" |
| 15770 | |
| 15771 | type: ClassVar[str] = "shell" |
| 15772 | """Task kind""" |
| 15773 | |
| 15774 | can_promote_to_background: bool | None = None |
| 15775 | """Whether this shell task can be promoted to background mode""" |
| 15776 | |
| 15777 | completed_at: datetime | None = None |
| 15778 | """ISO 8601 timestamp when the task finished""" |
| 15779 | |
| 15780 | execution_mode: TaskExecutionMode | None = None |
| 15781 | """Whether task execution is synchronously awaited or managed in the background""" |
| 15782 | |
| 15783 | log_path: str | None = None |
| 15784 | """Path to the detached shell log, when available""" |
| 15785 | |
| 15786 | pid: int | None = None |
| 15787 | """Process ID when available""" |
| 15788 | |
| 15789 | @staticmethod |
| 15790 | def from_dict(obj: Any) -> 'TaskShellInfo': |
| 15791 | assert isinstance(obj, dict) |
| 15792 | attachment_mode = TaskShellInfoAttachmentMode(obj.get("attachmentMode")) |
| 15793 | command = from_str(obj.get("command")) |
| 15794 | description = from_str(obj.get("description")) |
| 15795 | id = from_str(obj.get("id")) |
| 15796 | started_at = from_datetime(obj.get("startedAt")) |
| 15797 | status = TaskStatus(obj.get("status")) |
| 15798 | can_promote_to_background = from_union([from_bool, from_none], obj.get("canPromoteToBackground")) |
| 15799 | completed_at = from_union([from_datetime, from_none], obj.get("completedAt")) |
| 15800 | execution_mode = from_union([TaskExecutionMode, from_none], obj.get("executionMode")) |
| 15801 | log_path = from_union([from_str, from_none], obj.get("logPath")) |
| 15802 | pid = from_union([from_int, from_none], obj.get("pid")) |
| 15803 | return TaskShellInfo(attachment_mode, command, description, id, started_at, status, can_promote_to_background, completed_at, execution_mode, log_path, pid) |
| 15804 | |
| 15805 | def to_dict(self) -> dict: |
| 15806 | result: dict = {} |
no outgoing calls
no test coverage detected
searching dependent graphs…