toMarkdown method
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();
}