Add an optional triage class to inter-agent messages so a comms daemon (M8)
can route deliver-vs-log-and-drop from an exact field instead of re-deriving
intent from the message body. ~35% of Mos's queued fan-in is agent-send
traffic; this makes that slice self-declaring on the tmux transport today,
with zero dependency on the M7/Matrix cutover.
Producer:
-C CLASS / --class CLASS / --class=CLASS, c in
{terminal-log, actionable, human, reaction}.
When SET, the preamble carries a ` class=<c>` token INSIDE the bracket:
[src -> dst class=terminal-log] msg
When OMITTED, NO token is emitted — the preamble is byte-for-byte identical
to the classic format (regression bar). Consumers treat an absent class as
'actionable' (fail-safe: the agent still sees it). Invalid/empty class => exit 3.
Consumer grammar (daemon mirrors this exactly):
^\[(\S+) -> (\S+?)(?: class=(terminal-log|actionable|human|reaction))?\] (.*)$
Tests (agent-send.test.sh, 11 assertions, all green; shellcheck clean):
- REGRESSION: no --class is byte-identical to origin/main (proven via od -tx1
diff of the on-wire payload, not just an expected string).
- space / equals / -C short forms all parse identically.
- invalid class and valueless --class both exit 3 with nothing sent.
- the documented consumer regex round-trips every class + the classic line.
SENDER is now env-overridable (AGENT_SEND_SENDER) purely for test injection;
production callers never set it, so behavior is unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kt2D8TsnDwhtzEAPijsNmR
7.0 KiB
Executable File
7.0 KiB
Executable File