pjkm.core.engine.project_engine

ProjectEngine: top-level orchestrator that wires everything together.

Classes

ProjectResult

Aggregate result of a full project generation run.

ProjectEngine

Orchestrates project generation.

Module Contents

class pjkm.core.engine.project_engine.ProjectResult(/, **data)[source]

Bases: pydantic.BaseModel

Aggregate result of a full project generation run.

Parameters:

data (Any)

config: pjkm.core.models.project.ProjectConfig[source]
results: list[pjkm.core.models.task.TaskResult] = None[source]
property success: bool[source]
Return type:

bool

property failed_tasks: list[pjkm.core.models.task.TaskResult][source]
Return type:

list[pjkm.core.models.task.TaskResult]

property skipped_tasks: list[pjkm.core.models.task.TaskResult][source]
Return type:

list[pjkm.core.models.task.TaskResult]

property completed_tasks: list[pjkm.core.models.task.TaskResult][source]
Return type:

list[pjkm.core.models.task.TaskResult]

class pjkm.core.engine.project_engine.ProjectEngine(task_registry, dag_resolver=None)[source]

Orchestrates project generation.

Both CLI and TUI call engine.execute(config, on_event=…) with the same interface. The engine: 1. Gathers applicable tasks from the registry 2. Resolves execution order via DAG 3. Runs tasks via TaskRunner, emitting events 4. Returns a ProjectResult

Parameters:
execute(config, on_event=None, extra=None)[source]

Run the full project generation pipeline.

Parameters:
Return type:

ProjectResult