Files

65 lines
1.3 KiB
Python

from __future__ import annotations
from typing import Any
from takopi.model import (
Action,
ActionEvent,
ActionKind,
EngineId,
ResumeToken,
StartedEvent,
TakopiEvent,
)
def session_started(engine: str, value: str, title: str = "Codex") -> TakopiEvent:
engine_id: EngineId = engine
return StartedEvent(
engine=engine_id,
resume=ResumeToken(engine=engine_id, value=value),
title=title,
)
def action_started(
action_id: str,
kind: ActionKind,
title: str,
detail: dict[str, Any] | None = None,
engine: str = "codex",
) -> TakopiEvent:
engine_id: EngineId = engine
return ActionEvent(
engine=engine_id,
action=Action(
id=action_id,
kind=kind,
title=title,
detail=detail or {},
),
phase="started",
)
def action_completed(
action_id: str,
kind: ActionKind,
title: str,
ok: bool,
detail: dict[str, Any] | None = None,
engine: str = "codex",
) -> TakopiEvent:
engine_id: EngineId = engine
return ActionEvent(
engine=engine_id,
action=Action(
id=action_id,
kind=kind,
title=title,
detail=detail or {},
),
phase="completed",
ok=ok,
)