taskAsyncResultNotice function

String taskAsyncResultNotice(
  1. TaskJob job
)

Implementation

String taskAsyncResultNotice(TaskJob job) {
  final result = job.result;
  final buffer = StringBuffer()
    ..writeln('<system-notice>')
    ..writeln(
      'Background agent ${job.id} (${job.agent}) finished with status: '
      '${job.status.name}.',
    )
    ..writeln('Task: ${job.task}')
    ..writeln()
    ..write(
      '<task-result id="${job.id}" agent="${job.agent}" '
      'status="${job.status.name}">',
    );
  final output = result?.output ?? '';
  if (output.isNotEmpty) {
    buffer
      ..writeln()
      ..writeln(
        output.length > taskAsyncResultPreviewChars
            ? '${output.substring(0, taskAsyncResultPreviewChars)}\n…\n'
                  '[Full output: agent://${job.id}]'
            : output,
      );
  }
  final error = result?.error;
  if (error != null) buffer.write('\nerror: $error');
  buffer
    ..write('\n</task-result>')
    ..write('\n</system-notice>');
  return buffer.toString();
}