Activity probe

activity_probe.SessionActivityProbe

The session-activity verdict over one transcript.

Usage

Source

activity_probe.SessionActivityProbe(
    is_waiting, mid_tool, pending, last_event_epoch
)

Attributes

is_waiting: bool

Whether the session waits on ephemeral or pending async work.

mid_tool: bool

Whether the current turn has an unanswered non-human-facing call.

pending: tuple[PendingItem, …]

The contributing calls, in document order, deduped by tool-use id.

last_event_epoch: int | None
The latest envelope timestamp as epoch seconds, or None.

activity_probe.session_activity_probe()

Probes the transcript at path for session activity.

Usage

Source

activity_probe.session_activity_probe(
    path,
    *,
    waiting_tools=DEFAULT_WAITING_TOOLS,
    human_facing_tools=DEFAULT_HUMAN_FACING_TOOLS
)

The Rust extension reads and parses the file and runs the oracle in one pass, returning the session-activity verdict.

Parameters

path: Path

The .jsonl transcript to probe.

waiting_tools: frozenset[str] = DEFAULT_WAITING_TOOLS

Tool names whose calls in the current turn mark the session waiting.

human_facing_tools: frozenset[str] = DEFAULT_HUMAN_FACING_TOOLS
Tool names whose unanswered calls are the user’s move, never mid-tool.

Returns

SessionActivityProbe
The session-activity verdict.