usage: job_subscriber.py [-h] (--job JOB | --wait-any) [--timeout TIMEOUT] [--idle-timeout IDLE_TIMEOUT] [--ack-timeout ACK_TIMEOUT] [--expect-retention] [--expect-dispatch-token EXPECT_DISPATCH_TOKEN] [--attempt-id ATTEMPT_ID] [--registry-dir REGISTRY_DIR] [--remote] [-v] Subscribe to Job events on MQTT optional arguments: -h, --help show this help message and exit --job JOB job id to watch --wait-any watch every pending/running job in the registry --timeout TIMEOUT wall-clock budget in seconds (default: job.timeout_sec or 3600) --idle-timeout IDLE_TIMEOUT max seconds with no new event (default: job.idle_timeout_sec or 120) --ack-timeout ACK_TIMEOUT extra idle budget before the first event, for the injection to produce `started` (default: job.ack_timeout_sec; Issue #18) --expect-retention warn if no retained terminal event arrives promptly --expect-dispatch-token EXPECT_DISPATCH_TOKEN expected dispatch token for CAS verification --attempt-id ATTEMPT_ID minimum attempt id to accept events for --registry-dir REGISTRY_DIR --remote the agent shares no disk with this registry: mirror started/terminal events into the job record (Issue #18; automatic for jobs registered with --transport remote) -v, --verbose