pjkm.core.models.task

Task system models: phases, definitions, results, and events.

Attributes

Classes

Phase

Execution phases in strict order.

TaskDefinition

Metadata describing a registered task.

TaskResult

Outcome of executing a single task.

TaskStarted

Emitted when a task begins execution.

TaskProgress

Emitted for intermediate task status updates.

TaskCompleted

Emitted when a task finishes.

PhaseStarted

Emitted when a phase begins.

PhaseCompleted

Emitted when all tasks in a phase have finished.

Module Contents

class pjkm.core.models.task.Phase[source]

Bases: enum.IntEnum

Execution phases in strict order.

SCAFFOLD = 1[source]
CONFIGURE = 2[source]
INSTALL = 3[source]
VERIFY = 4[source]
class pjkm.core.models.task.TaskDefinition(/, **data)[source]

Bases: pydantic.BaseModel

Metadata describing a registered task.

Parameters:

data (Any)

id: str[source]
phase: Phase[source]
depends_on: list[str] = None[source]
description: str = ''[source]
class pjkm.core.models.task.TaskResult(/, **data)[source]

Bases: pydantic.BaseModel

Outcome of executing a single task.

Parameters:

data (Any)

task_id: str[source]
success: bool[source]
message: str = ''[source]
files_created: list[str] = None[source]
files_modified: list[str] = None[source]
duration_ms: float = 0.0[source]
skipped: bool = False[source]
class pjkm.core.models.task.TaskStarted(/, **data)[source]

Bases: pydantic.BaseModel

Emitted when a task begins execution.

Parameters:

data (Any)

kind: Literal['task_started'] = 'task_started'[source]
task_id: str[source]
phase: Phase[source]
description: str[source]
class pjkm.core.models.task.TaskProgress(/, **data)[source]

Bases: pydantic.BaseModel

Emitted for intermediate task status updates.

Parameters:

data (Any)

kind: Literal['task_progress'] = 'task_progress'[source]
task_id: str[source]
message: str[source]
fraction: float = 0.0[source]
class pjkm.core.models.task.TaskCompleted(/, **data)[source]

Bases: pydantic.BaseModel

Emitted when a task finishes.

Parameters:

data (Any)

kind: Literal['task_completed'] = 'task_completed'[source]
task_id: str[source]
result: TaskResult[source]
class pjkm.core.models.task.PhaseStarted(/, **data)[source]

Bases: pydantic.BaseModel

Emitted when a phase begins.

Parameters:

data (Any)

kind: Literal['phase_started'] = 'phase_started'[source]
phase: Phase[source]
class pjkm.core.models.task.PhaseCompleted(/, **data)[source]

Bases: pydantic.BaseModel

Emitted when all tasks in a phase have finished.

Parameters:

data (Any)

kind: Literal['phase_completed'] = 'phase_completed'[source]
phase: Phase[source]
pjkm.core.models.task.TaskEvent[source]