pjkm.core.engine.project_engine¶
ProjectEngine: top-level orchestrator that wires everything together.
Classes¶
Aggregate result of a full project generation run. |
|
Orchestrates project generation. |
Module Contents¶
- class pjkm.core.engine.project_engine.ProjectResult(/, **data)[source]¶
Bases:
pydantic.BaseModelAggregate result of a full project generation run.
- Parameters:
data (Any)
- results: list[pjkm.core.models.task.TaskResult] = None[source]¶
- property failed_tasks: list[pjkm.core.models.task.TaskResult][source]¶
- Return type:
- property skipped_tasks: list[pjkm.core.models.task.TaskResult][source]¶
- Return type:
- property completed_tasks: list[pjkm.core.models.task.TaskResult][source]¶
- Return type:
- 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:
task_registry (pjkm.core.tasks.registry.TaskRegistry)
dag_resolver (pjkm.core.engine.dag.DAGResolver | None)
- execute(config, on_event=None, extra=None)[source]¶
Run the full project generation pipeline.
- Parameters:
on_event (collections.abc.Callable[[pjkm.core.models.task.TaskEvent], None] | None)
extra (dict | None)
- Return type: