hepToolLivenessFrame function

String hepToolLivenessFrame({
  1. required int turnId,
  2. required String id,
  3. required String name,
  4. required String action,
  5. required int elapsedMs,
  6. int? outputBytes,
  7. String detail = '',
})

Builds tool_liveness (gh-1054): a liveness heartbeat for a long-outstanding tool call (action: "heartbeat") or a stuck-call follow-up transition (cancel_retry/background_convert/escalate/ advisory). Additive v1 frame — supervisors read it to distinguish alive-busy from dead without waiting out their own watchdogs.

Implementation

String hepToolLivenessFrame({
  required int turnId,
  required String id,
  required String name,
  required String action,
  required int elapsedMs,
  int? outputBytes,
  String detail = '',
}) => jsonEncode({
  'type': 'tool_liveness',
  'turn_id': turnId,
  'id': id,
  'name': name,
  'action': action,
  'elapsed_ms': elapsedMs,
  'output_bytes': ?outputBytes,
  if (detail.isNotEmpty) 'detail': detail,
});