toMarkdown method

String toMarkdown()

Renders the artifact as Markdown.

Implementation

String toMarkdown() {
  final buffer = StringBuffer();
  buffer
    ..writeln('# Proof of Work: $issueIdentifier')
    ..writeln()
    ..writeln('- Run id: `$runId`')
    ..writeln('- Workspace: `$workspacePath`')
    ..writeln('- Attempt: $attempt')
    ..writeln('- Started at: ${startedAt.toIso8601String()}')
    ..writeln('- Ended at: ${endedAt.toIso8601String()}')
    ..writeln('- Status: ${succeeded ? 'succeeded' : 'failed'}');

  if (recommendation != null && recommendation!.trim().isNotEmpty) {
    buffer
      ..writeln()
      ..writeln('## Recommendation')
      ..writeln(recommendation);
  }

  if (changedFiles.isNotEmpty) {
    buffer
      ..writeln()
      ..writeln('## Changed Files')
      ..writeln(changedFiles.map((f) => '- `$f`').join('\n'));
  }

  if (hookStatuses.isNotEmpty) {
    buffer
      ..writeln()
      ..writeln('## Hooks')
      ..writeln(
        hookStatuses.entries.map((e) => '- ${e.key}: ${e.value}').join('\n'),
      );
  }

  if (retryHistory.isNotEmpty) {
    buffer
      ..writeln()
      ..writeln('## Retry History')
      ..writeln(retryHistory.map((r) => '- $r').join('\n'));
  }

  if (diffSummary != null && diffSummary!.trim().isNotEmpty) {
    buffer
      ..writeln()
      ..writeln('## Diff Summary')
      ..writeln('```diff')
      ..writeln(diffSummary)
      ..writeln('```');
  }

  return buffer.toString();
}