Two pure-standard-library utilities: emit CI annotations from results, and keep a searchable clipboard history. Full stack.
from je_auto_control import emit_annotations
emit_annotations([
{"level": "error", "message": "step failed",
"file": "flows/login.json", "line": 12, "title": "Login"},
])
# prints: ::error file=flows/login.json,line=12,title=Login::step failed
Converts result dicts ({level, message, file?, line?, col?, title?})
into GitHub Actions workflow commands so failures surface inline in a PR
— no third-party reporter action required. level is error /
warning / notice; values are escaped per GitHub's rules. Exposed as
AC_ci_annotations / ac_ci_annotations.
from je_auto_control import ClipboardHistory, default_clipboard_history
default_clipboard_history.start() # poll the clipboard in the background
default_clipboard_history.search("invoice")
default_clipboard_history.get(0) # most recent entry
A capped, newest-first ring buffer of distinct clipboard text entries with
add / snapshot / get / search / clear and an optional
background poller (start / stop / capture_once). Exposed as
AC_clip_history_capture / AC_clip_history_list /
AC_clip_history_search / AC_clip_history_start /
AC_clip_history_stop (and ac_clip_history_*).