Skip to content

previous-draft/collectors/__init__.py

Comment 1, line 1

previous-draft/collectors/init.py:1

# -*- coding: utf-8 -*-

Comment 2, line 2

previous-draft/collectors/init.py:2

"""Collector framework.
To add a tool, create xxx.py here and register a collect(ctx) generator with
@collector("tool-name"). The framework discovers and schedules it automatically.
Remove a tool by deleting its file, or yield nothing from collect() and record
the skip reason by setting ctx.skip_reason before returning.
"""

Comment 3, line 18

previous-draft/collectors/init.py:18

# Epoch seconds.

Comment 4, line 21

previous-draft/collectors/init.py:21

# Uncached input tokens.

Comment 5, line 29

previous-draft/collectors/init.py:29

store.Store

Comment 6, line 31

previous-draft/collectors/init.py:31

# The collector may record a skip/failure reason.

Comment 7, line 38

previous-draft/collectors/init.py:38

"""Register a collector with signature collect(ctx) -> Iterable[Event]."""

Comment 8, line 46

previous-draft/collectors/init.py:46

"""Yield complete new lines incrementally and update offsets (append-only JSONL).
Read a newly seen file from offset zero for initial historical backfill;
subsequent reads consume only appended bytes. Restart from the beginning
after truncation/rotation. refresh=True ignores offsets and rescans everything.
"""

Comment 9, line 72

previous-draft/collectors/init.py:72

# No complete line yet; wait for the next read.

Comment 10, line 86

previous-draft/collectors/init.py:86

"""Extract a line model field quickly without JSON parsing for current-model tracking."""

Comment 11, line 92

previous-draft/collectors/init.py:92

"""Stable request deduplication ID."""